c语言从文件中读取城市名,编写函数对城市名进行升序排序,用户输入一个城市名,如果文件中有这个城市,则显示已查找到,如果没有则显示没有找到

c语言从文件中读取城市名,编写函数对城市名进行升序排序
c语言从文件中读取城市名,编写函数对城市名进行升序排序,用户输入一个城市名,如果文件中有这个城市,则显示已查找到,如果没有则显示没有找到
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 语言-逆行者 2022-12-24 22:35关注
/**字符串排序*/ #include<stdio.h> #include<string.h> #define N 10 void Sort_String(char arr[][50], int size) { char tmp[50]; if(arr == NULL || size < 2)//字符串个数小于2的直接返回,不用排序 {return;} for(int i = 0; i < size - 1; i++) { for(int j = 0; j < size - i - 1; j++) { if(strcmp(arr[j], arr[j + 1]) > 0) { //利用冒泡的排序算法对字符串进行排序 strcpy(tmp,arr[j]); strcpy(arr[j],arr[j + 1]); strcpy(arr[j + 1],tmp); } } } } void find(char arr[][50], int size){ int i; char str[50]; printf("请输入你要查找的城市:\n"); scanf("%s",str); getchar(); for(i=0;i<N;i++){ if(strcmp(arr[i],str)==0){printf("已查找到!\n");return ;} } printf("没有找到!\n"); return ; } int main(){ int n,i; char arr[N][50]; FILE *fp; fp=fopen("city.txt","r"); if(fp==NULL) { printf("文件打开失败!\n"); } else{ for(i=0;i<N;i++) { fscanf(fp,"%s\n",arr[i]); } } fclose(fp); Sort_String(arr,N); printf("排序后:\n"); for(i=0;i<N;i++){ puts(arr[i]); } printf("\n"); find(arr,N); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用