C语言文件读写问题(初级学者勿进)
大家看我做的程序,语法是没有问题,就是运行结果有点小问题:
#include<string.h>
#include<stdio.h>
#include<dos.h>
process(char stra[256],char *pa)
{
char strb[40],*strc;
int i=0;
strc=strb;
for(;i<19&&*pa!='.';i++)
{
strb[i]=*pa;
*pa++;
printf("%4d",i);
printf("%c",strb[i]);
}
strb[++i]='\0';
sleep(2);
printf("\n");
printf("strb is %s!\n",strb);
printf("strc is %s!\n",strc);
if(strc=="svchost")printf("find\n");
else printf("not find\n");
}
main()
{
FILE *pf;
char str1[256],str2[40],*p1;
system("cmd /c tasklist >c:\\tasklist.per");
sleep(1);
pf=fopen("c:\\tasklist.per","r");
fgets(str1,256,pf);
fgets(str1,256,pf);
fgets(str1,256,pf);
fgets(str1,256,pf);
fgets(str1,256,pf);
while(fgets(str1,40,pf)!=NULL)
{
p1=str1;
process(str1,p1);
fgets(str1,216,pf);
}
fclose(pf);
getch();
}
不防大家去运行试看,我的目的是找到任务管理器的进程某字符串,但是找到的字符串结尾有的多了一个不定的字符,我也不知道错在哪里.比如我想要找的字符串是svchost,但是我得到的字符串常量却是svchosts,多了s.
参考答案:if(strc=="svchost")应该改为
if(strcmp(strc,"svchost")==0)或者是
if(!strcmp(strc,"svchost"))