真心求指教
一个小程序:将输入中包含字符串“ould”的各行打印出来,这是小弟的代码:
#include<stdlib.h>
#define MAXLINE 100 /*最大输入行长度*/
int getline(char line[],int max);
int strindex(char source[], char searchfor[]);
char pettern[] = "ould"; /* 待查找的模式 */
int main()
{
char line[MAXLINE];
int found = 0;
while (getline(line , MAXLINE) > 0)
if (strindex(line,pettern) >= 0){
printf ("%s", line);
found++;
}
system("pause");
return found;
}
/* GETLINE函数:将行保存到S中,并返回该行的长度 */
int getline(char s[], int lim)
{
int c,i;
i = 0;
while( --lim > 0 && (c = getchar () != EOF) && c != '\n')
s[i++] = c;
if ( c == '\n')
s[i++] = c;
s[i++] = '\0';
return i;
}
/* strindex函数:返回T在S中的位置;若未找到则返回-1 */
int strindex(char s[], char t[])
{
int i,j,k;
for(i = 0; s[i] != '\n'; i++)
{
for (j=i,k=0;t[k]!='\0'&& s[j] == t[k]; j++, k++)
;
if( k > 0&& t[k] == '\0')
return i;
}
return -1;
}
但是输入测试数据之后为什么没有输出呢
#include<stdio.h>#include<stdlib.h>
#define MAXLINE 100 /*最大输入行长度*/
int getline(char line[],int max);
int strindex(char source[], char searchfor[]);
char pettern[] = "ould"; /* 待查找的模式 */
int main()
{
char line[MAXLINE];
int found = 0;
while (getline(line , MAXLINE) > 0)
if (strindex(line,pettern) >= 0){
printf ("%s", line);
found++;
}
system("pause");
return found;
}
/* GETLINE函数:将行保存到S中,并返回该行的长度 */
int getline(char s[], int lim)
{
int c,i;
i = 0;
while( --lim > 0 && (c = getchar () != EOF) && c != '\n')
s[i++] = c;
if ( c == '\n')
s[i++] = c;
s[i++] = '\0';
return i;
}
/* strindex函数:返回T在S中的位置;若未找到则返回-1 */
int strindex(char s[], char t[])
{
int i,j,k;
for(i = 0; s[i] != '\n'; i++)
{
for (j=i,k=0;t[k]!='\0'&& s[j] == t[k]; j++, k++)
;
if( k > 0&& t[k] == '\0')
return i;
}
return -1;
}
但是输入测试数据之后为什么没有输出呢
...全文


