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


/**字符串排序*/
#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;
}