这个文件中每个城市一行,所以逐行读取就可以了
代码:
#include <stdio.h>
#include <string.h>
void sort(char city[][40],int n)
{
int i,j;
char tmp[40];
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(strcmp(city[j],city[j+1]) > 0)
{
strcpy(tmp,city[j]);
strcpy(city[j],city[j+1]);
strcpy(city[j+1],tmp);
}
}
}
}
int main()
{
FILE * fp = 0;
int i=0,n=0;
char city[10][40]={0},tmp[40]={0};
fp = fopen("city.txt","r");
if(fp == 0)
{
printf("文件打开失败\n");
return 0;
}
for(n=0;n<10 && (!feof(fp));n++)
{
fgets(city[n],40,fp);
if(city[n][strlen(city[n])-1] =='\n')
city[n][strlen(city[n])-1] = 0; //忽略掉回车符
}
fclose(fp);
//排序
sort(city,n);
printf("排序后:\n");
for(i=0;i<n;i++)
printf("%s\n",city[i]);
//
printf("请输入要查找的城市:");
scanf("%s",tmp);
for(i=0;i<n;i++)
{
if(strcmp(city[i],tmp)==0)
{
printf("查到这个城市!\n");
break;
}
}
if(i==n)
printf("没有知道这个城市!\n");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!