當前位置:首頁 » 編程語言 » c語言首字怎麼排序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言首字怎麼排序

發布時間: 2022-09-12 22:11:42

c語言中漢字如何進行排序

C語言中,漢字是按照字元串來處理的,一個漢字佔用2個位元組,漢字的排序就是按照漢字的編碼進行排序(不是拼音),而是半個漢字的ASCII碼進行排序的。
所以在輸出漢字的時候,如果按照位元組輸出,而不按照字元串輸出的話,就會出現亂碼。
具體漢字的編碼,就不是那麼容易的了。編碼一般以0x開頭,表示是用一個十六進制數表示的。

Ⅱ c語言姓名首字母排序問題

按照C語言語法,main函數須為void類型;另外,你所編輯的程序段沒有輸入。就排序方式來講你所用的是函數的址傳遞及字元串比較大小的函數,這點沒有錯誤;就理解而言strcmp函數的確可以實現你所需的功能,其大小的比較式按ASCⅡ碼值進行的比較,不知道你有沒有意識到。

Ⅲ C語言:將輸入的字元串按首字母順序排列。

#include<stdio.h>

#include<string.h>

void sort(char *a[]);

void print(char *a[]);

int main()

{

char *a[] ={"ceo","define","basic","abc","empty"};

printf("原來的序列是: ");

print(a);

sort(a);

printf(" 排序後的序列是: ");

print(a);

printf(" ");

return 0;

}

void sort(char *a[])

{

int i,j;

char *temp;

for(i=0;i<4;i++)//注意是i<4

{

for(j=0;j<4;j++)//注意是j<4,因為下面要+1和後面的那個字元串比較

{

if(strcmp(a[j],a[j+1])>0)//字元串比較:>0表示前面的字元串比後面的大則交換

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

}

void print(char *a[])

{

int i;

for(i=0;i<5;i++)

{

printf("%s ",a[i]);

}

}

運行效果:

(3)c語言首字怎麼排序擴展閱讀:

return 0的用法:

return的作用是結束正在運行的函數,並返回函數值。return後面可以跟一個常量,變數,或是表達式。

函數的定義一般是這樣的,例如:

inta(inti)//第一個int是函數的返回值的類型,也就是return後面跟的值的類型,a是函數的名稱,括弧里的是傳遞給函數的參數,int是參數的類型,i是參數的名字

...//省略函數體內容

returnb;//b必須與函數頭的返回值一致(此處為int型)

簡單函數舉例:

intaddOne(intb)

returnb+1;

該函數的作用是取得一個數,將這個數加上1,再將結果返回

調用時這樣:

intresult=addOne(2);//此時result的值為3

函數括弧里的參數也可以為變數或能算出值的表達式

以上就是一個基本的函數,一般的函數都有返回值,也就是return後面跟的值,返回值可以為各種數據類型,如:int,float,double,char,a[](數組),*a(指針),結構或類(c++)

但不是所有函數都有返回值,如果某個函數無返回值,那麼返回值的位置則為「void」關鍵字,此時函數體中無返回值,即無return的值。但是函數中也可出現return,即一個空的return句子,其作用是使函數立即結束,如voidprint()//括弧中為空表示無傳遞參數、

printf("a");

printf("b");

return;//函數執行到此處結束

printf("c");

}//該函數只執行到return語句處,即屏幕上輸出的為"ab"

Ⅳ c語言用數組做通訊錄 怎樣將聯系人的姓名首字母排序 並且輸出 求大俠

排序部分
for(j=0;j<n-1;j++)
{

for(i=0;i<n-1-j;i++)
{
if((strcmp(wds[i],wds[i+1]))>0)//每個數組元素都是字元串
{
t=wds[i];
wds[i]=wds[i+1];
wds[i+1]=t;
}//冒泡排序
}

}
輸出部分
for(k=0;i<n;k++)
{
puts(wds[i]);

}

Ⅳ c語言一個文本內所有單詞按首字母排序

先將文本里的所有單詞賦值給二維字元串變數string[i][j],取每個的單詞的首字母例如string[i][0]進行比較排序,排序演算法網上多得是,可以自己找一種做
for(i=0;i<9;i++) /* 冒泡法排序 */
for(j=0;j<10-i-1;j++)
if(a[j]>a[j+1])
{t=a[j];/* 交換a[i]和a[j] */
a[j]=a[j+1];
a[j+1]=t;
}

Ⅵ 如何用C語言實現一串中文姓名的排序(首字筆畫或者字母)

數組的第一位設置成筆畫數,第二位設置成首字母,排序時根據需要選擇,輸出時從第三位輸出。
char *name="4w王";

Ⅶ c語言程序 中文按首字母排序

#include <stdio.h>
#include <string.h>

#define MAX_NAME 20 //最大名字長度
#define MAX_NUM 100 //最大學生人數

void sort_bubble(char (*pc)[MAX_NAME],int n)//排序函數
{
int i,j;
char str[MAX_NAME];
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp(pc[i],pc[j])>0)
{
strcpy(str,pc[i]);
strcpy(pc[i],pc[j]);
strcpy(pc[j],str);
}
}
}
}

void display_name(char (*pc)[MAX_NAME],int n)//顯示這n個姓名
{
int i;
for(i=0;i<n;i++)
{
printf("%s\n",pc[i]);
}
}
int main()
{
int i=1,n;
char str[MAX_NUM][MAX_NAME];
printf("請輸入學生總數:");
scanf("%d",&n);
while(i<=n)
{
printf("請輸入第%d個學生姓名:",i);
scanf("%s",str[i++-1]);
}
printf("排序前的學生名單如下:\n");
display_name(str,n);
sort_bubble(str,n);
printf("排序後的學生名單如下:\n");
display_name(str,n);
return 0;
}
說明:
1:採用的是冒泡排序,用快速排序當然快些,但我忘了
2:已驗證通過,結果正確。
3:隨意輸入人數和姓名,只要數組不越界就沒有問題!
4:兩個函數:排序和顯示
5:給分+好評

Ⅷ c語言排序的方法

排序主要分為以下幾種。
1.冒泡排序:通過循環比較前後數的大小進行交換。最後使得數組有序。
2.快速排序:首先將第一個數作為一個基準,然後循環,將前半部分大於該數的與後半部分小於該數的進行交換,使得以該數為分界線,前面的小於該數,後面的大於該數,然後分前後兩部分繼續。