字符串处理函数
#include<string.h>
长度 strlen(str) string length
赋值 strcpy(str2,str1) string copy
连接 strcat(str2,str1) string combination
比较 strcmp(str1,str2) string comparison → 比较ASCII码
问题:请编程实现按奥运会参赛国国名在字典中的顺序对其入场次序进行排序。假设参赛国不超过150个。
1 #include<stdio.h> 2 #include<string.h> 3 #define MAX_LEN 10 /*字符串最大长度*/ 4 #define N 150 /*字符串个数*/ 5 void SortString(char str[][MAX_LEN],int n); 6 int main(void) 7 { 8 int i,n; 9 char name[N]{MAX_LEN}; /*定义二维字符数组*/ 10 printf("How many countries?"); 11 scanf("%d",&n); 12 getchar(); /*读走输入缓冲区中的回车符*/ 13 printf("Input their names:\n"); 14 for(i=0;i<n;i++) 15 { 16 gets(name[i]); /*输入n个字符串*/ 17 } 18 SortString(name,n); /*字符串按字典顺序排序*/ 19 printf("Sorted results:\n"); 20 for(i=0;i<n;i++) 21 { 22 puts(names[i]); 23 } 24 return 0; 25 } 26 27 void SortString(char str[][MAX_LEN],int n) 28 { 29 int i,j; 30 char temp[MAX_LEN]; 31 for(i=0;i<n-1;i++) 32 { 33 for(j=i+1;j<n;j++) 34 { 35 if(strcmp(str[j],str[i])<0) 36 { 37 strcpy(temp,str[i]); 38 strcpy(str[i],str[j]); 39 strcpy(str[j],temp); 40 } 41 } 42 } 43 }

#include<stdio.h> #define N 80 unsigned int MyStrlen(const char *pStr); main() { char str[N]; printf("Input a string:"); gets(str); printf("The length of the string is:%u\n",MyStrlen(str)); } unsigned int MyStrlen(const char *pStr) { unsigned int len=0; for(;*pStr!='\0';pStr++) { len++; } return len; }

1 #include<stdio.h> 2 #define N 80 3 void MyStrcpy(char dstStr[],char srcStr[]); 4 main() 5 { 6 char str1[N],str2[N]; 7 printf("Input a string:"); 8 gets(str1); 9 MyStrcpy(str2,str1); 10 printf("The copy is:"); 11 puts(str2); 12 } 13 void MyStrcpy(char dstStr[],char srcStr[]) 14 { 15 int i=0; 16 while(srcStr[i]!='\0') 17 { 18 dstStr[i]=srcStr[i]; 19 i++; 20 } 21 dstStr[i]='\0'; 22 }

1 #include<stdio.h> 2 #define N 80 3 void *MyStrcat(char *dstStr, char *srcStr); 4 main() 5 { 6 char str1[2*N],str2[N]; 7 printf("Input a string:"); 8 gets(str1); 9 printf("Input another string:"); 10 gets(str2); 11 printf("Concatenate results:%s\n",MyStrcat(str1,str2)); 12 } 13 void *MyStrcat(char *dstStr, char *srcStr) 14 { 15 char *pStr=dstStr; 16 while(*dstStr!='\0') 17 { 18 *dstStr++; 19 } 20 for(;*srcStr!='\0';dstStr++,srcStr++) 21 { 22 *dstStr=*srcStr; 23 } 24 *dstStr='\0'; 25 return pStr; 26 }

1 #include <stdio.h> 2 #define SIZE 80 3 int MyStrcmp(char s[],char t[]); 4 main() 5 { 6 char s[SIZE],t[SIZE],i; 7 printf("Input s\n"); 8 gets(s);//1 9 printf("Input t\n"); 10 gets(t);//1 11 i=MyStrcmp(s,t);//2 12 if(i>0)//1 13 printf("string s>string t.\n"); 14 else if(i<0)//1 15 printf("string s<string t.\n"); 16 else//1 17 printf("string s=string t.\n"); 18 } 19 int MyStrcmp(char s[], char t[]) 20 { 21 int i; 22 for (i=0; s[i] == t[i]; i++ ) //6 23 { 24 if (s[i] == '\0' ) //2 25 return 0 ;//2 26 } 27 return (s[i]-t[i]); //2 28 }
分类:
C语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具