[求助]一个简单的字符串查找问题,请大虾们指点迷津,在线等
课题很简单,设计一个小程序,读取一个文件,输入一个用户名,显示这个用户的其他信息. ps:文件是unix系统下的普通文件,没有固定的格式.
这是我写的程序,不过不完整
#include<stdio.h>
#include<stdlib.h>
#define n 81
void main()
{
file *fp;
char ch[20],str[n];
if((fp=fopen("services","rb"))==null)
{
printf("cannot open file strike any key exit!");
getchar();
exit(1); /*判断打开文件是否成功*/
}
printf("enter a name\n");
scanf("%s",&ch); /*提示输入要查找的字段*/
rewind(fp); /*指针移动到文件首*/
while(!feof(fp))
{
fgets(str,(strlen(ch)+1),fp); /*读取与输入的字符串相同长度的字符*/
if(!strcmp(str,ch)) /*判断输入的字符与查找的字符是否相等*/
printf("%s\n",str);
}
/*提示没有查找到的时候出问题了,如果用else放到while中的话循环无法执行,放到while外的话无论是否查找到都会执行下面那句*/
printf("the name does not exist\n");
fclose(fp);
}
还有就是如果我想查找aaa的话,只要包含aaa的字符串都会被查出来,就象aaaaa,weaaaea这种都会查出来,但是只显示aaa,我想如果执行一步判断查找到的字符串前后是否有空格的话,这个问题就能解决了,可是不会做.........
哪位高手帮帮忙,郁闷好几天了~~~~~~~~~~~~~~~~~
[此贴子已经被作者于2005-10-28 11:25:06编辑过]