用戶必須輸入姓名的數量,并且這些姓名需要使用strcpy()函數按字母順序排序。
字符數組(或字符集合)被稱為字符串。
聲明
以下是數組的聲明:
char stringname [size];
登錄后復制
例如,char string[50]; 長度為50個字符的字符串。
初始化
- 使用單個字符常量
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
登錄后復制
- 使用字符串常量
char string[10] = "Hello":;
登錄后復制
訪問
有一個控制字符串“%s”用于訪問字符串,直到遇到“\0”為止
strcpy()
這個函數用于將源字符串復制到目標字符串中。
目標字符串的長度大于或等于源字符串。
strcpy()函數的語法如下:
strcpy (Destination string, Source String);
登錄后復制
例如,
char a[50]; char a[50];
strcpy ("Hello",a); strcpy ( a,"hello");
output: error output: a= "Hello"
登錄后復制
用于按字母順序對名稱進行排序的邏輯如下 –
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(strcmp(str[i],str[j])>0){
strcpy(s,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],s);
}
}
}
登錄后復制
程序
以下是按字母順序對名稱進行排序的 C 程序 –
#include<stdio.h>
#include<string.h>
main(){
int i,j,n;
char str[100][100],s[100];
printf("Enter number of names :");
scanf("%d",&n);
printf("Enter names in any order:
");
for(i=0;i<n;i++){
scanf("%s",str[i]);
}
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(strcmp(str[i],str[j])>0){
strcpy(s,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],s);
}
}
}
printf("
The sorted order of names are:
");
for(i=0;i<n;i++){
printf("%s
",str[i]);
}
}
登錄后復制
輸出
當上述程序被執行時,它產生以下結果 ?
Enter number of names: 5 Enter names in any order: Pinky Lucky Ram Appu Bob The sorted order of names is: Appu Bob Lucky Pinky Ram
登錄后復制
以上就是C程序按字母順序排序姓名的詳細內容,更多請關注www.xfxf.net其它相關文章!






