我写了个想做到题目效果的main,但是他就是检测不到txt文本里的第一个单词的前三个好像
想问一下是哪里弄错了捏?
int main(int argc, char* argv[])
{
// check that the user passes in the name of a file
if(argc != 3){
printf("Error: please pass in two string, e.g.:\n");
printf("./t4 str1 str2\n");
return -1;
}
int len1=strlen(argv[1]);
int len2=strlen(argv[2]);
char str1[100];
char str2[100];
str1[0] ='\0';
str2[0] ='\0';
int count1 = 0;
int count2 = 0;
char last1 = getchar();
char last2 = getchar();
while(last2 != EOF){
char current = getchar();
int slen1 = strlen(str1);
if(slen1 < len1) { //check if slen1 == len1
str1[slen1] = current; //if not, add "current" to
str1[slen1+1] = '\0'; //str1
}
else if(slen1 == len1){
for (int i = 0; i < len1-1; i++) //Change the letter in str1
str1[i] = str1[i+1]; //so that it matches argv[1]
str1[len1-1] = current;
if (strcmp(str1,argv[1]) == 0) //if str1 == argv[1].
count1++; //count1++
}
last1 = current;
int slen2 = strlen(str2);
if(slen2 < len2) {
str2[slen2] = current;
str2[slen2+1] = '\0';
}
else if(slen2 == len2){
for (int i = 0; i < len2-1; i++)
str2[i] = str2[i+1];
str2[len2-1] = current;
if (strcmp(str2,argv[2]) == 0)
count2++;
}
last2 = current;
}
printf("%s : %d\n", argv[1], count1);
printf("%s : %d\n", argv[2], count2);
return 0;
}
这就是所有代码了,我的txt里就有四行名字:
paul
ringo
george
john
比如输入 r 就会输出 r : 2 这样的,但是我输入pa 或者paul 或者ul的时候,他都返回0 QAQ
有大佬帮忙看看吗!