求大神找错误
//有两个函数的功能是一样的,只是我想尝试两种循环,但是不知道整个程序错在哪里,求大神找错#include <stdio.h>
#define MAX 2000
int getline(char in[] , int lim);
int st(char s[] , char t[]);
char pa[] = "ould";
int main()
{
char line;
while(getline(line , MAX) > 0)
{
if(st(line , pa) >= 0)
{
printf("%s\n" , line);
}
}
}
int getline(char in[] , int lim)
{
int c;
int i = 0;
while(i < lim && (c = getchar() != EOF) && c != '\n')
{
in = c;
i++;
}
if(c == '\n')
{
in = c;
i++;
}
in = '\0';
return i;
}
#if(0)
int st(char s[] , char t[])
{
int i , j , k;
i = 0;
while(s != '\0')
{
j = i;
k = 0;
while(t != '\0' && s == t)
{
j++;
k++;
}
if(k > 0 && t == '\0')
{
return i;
}
i++;
}
return -1;
}
#endif
#if(1)
int st(char s[] , char t[])
{
int i , j , k;
i = 0;
for(i = 0; s != '\0'; i++)
{
for(j = i , k = 0; t != '\0' && s == t; j++ , k++)
{
;
}
if(k > 0 && t == '\0')
{
return i;
}
}
return -1;
}
#endif
char pa[] = "ould";
可能是这里 看了下你的代码,是不是当输入的字符串里有字串pa[]的话,就输出字符串的内容,如果是的话,把while(i < lim && (c = getchar() != EOF) && c != '\n') 改为
while(i < lim && (c = getchar()) != '\0' && c != '\n') while(i < lim && (c = getchar() != EOF) && c != '\n')
改为
while(i < lim && c = getchar()&& c != '\n') 笑笑生 发表于 2014-11-19 21:49
while(i < lim && (c = getchar() != EOF) && c != '\n')
改为
while(i < lim && c = getchar()&& c...
while(i < lim && (c = getchar() != EOF) && c != '\n')
改为
while(i < lim && (c = getchar())&& c != '\n') //这又句修改了下
差点忘了这是C++了...
页:
[1]