user-0 提问: 求教 c

回复:
user: user-0
content: 引用 8 楼 wyyy2088511 的回复:[quote=引用 7 楼 flamesP 的回复:] [quote=引用 5 楼 wyyy2088511 的回复:] #include <stdio.h> #include <string.h> #include <ctype.h> #define MAXLINE 1000 int getline(char line[],int max); int strindex(char sourse[],char searchfor[]);  char v[]="ould";  char pattern[]="ould";  int main() { 	char line[5][MAXLINE]={0}; 	int found=0;  	for(int i=0; i<5; i++) 	{ 		getline(line[i],MAXLINE); 	 	} 	for(int i=0; i<5; i++) 	{ 		if(strindex(line[i],pattern)>=0) 		{ 			printf("%s",line[i]); 			//found++; 		} 	} 		getchar(); 		return found; } 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; 	return i; }  int strindex(char s[],char t[]) { 	int i,j,k; 	for(i=0;s[i]!='\0';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; }  如果想输入比较大，数组改大点，或者用vector。   [/quote]strindex在main之前已经声明过的，我是在vs下编译的，没有问题。[/quote]  我用的是dev

user: user-0
content: 引用 9 楼 zhao4zhong1 的回复:int strindex(char sourse[],char searchfor[]); 和 int strindex(char *sourse,char *searchfor); 不是一回事！  不懂

user: user-1
content: int strindex(char sourse[],char searchfor[]); 和 int strindex(char *sourse,char *searchfor); 不是一回事！

user: user-2
content: 引用 7 楼 flamesP 的回复:[quote=引用 5 楼 wyyy2088511 的回复:] #include <stdio.h> #include <string.h> #include <ctype.h> #define MAXLINE 1000 int getline(char line[],int max); int strindex(char sourse[],char searchfor[]);  char v[]="ould";  char pattern[]="ould";  int main() { 	char line[5][MAXLINE]={0}; 	int found=0;  	for(int i=0; i<5; i++) 	{ 		getline(line[i],MAXLINE); 	 	} 	for(int i=0; i<5; i++) 	{ 		if(strindex(line[i],pattern)>=0) 		{ 			printf("%s",line[i]); 			//found++; 		} 	} 		getchar(); 		return found; } 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; 	return i; }  int strindex(char s[],char t[]) { 	int i,j,k; 	for(i=0;s[i]!='\0';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; }  如果想输入比较大，数组改大点，或者用vector。   [/quote]strindex在main之前已经声明过的，我是在vs下编译的，没有问题。

user: user-0
content: 引用 5 楼 wyyy2088511 的回复:#include <stdio.h> #include <string.h> #include <ctype.h> #define MAXLINE 1000 int getline(char line[],int max); int strindex(char sourse[],char searchfor[]);  char v[]="ould";  char pattern[]="ould";  int main() { 	char line[5][MAXLINE]={0}; 	int found=0;  	for(int i=0; i<5; i++) 	{ 		getline(line[i],MAXLINE);  	} 	for(int i=0; i<5; i++) 	{ 		if(strindex(line[i],pattern)>=0) 		{ 			printf("%s",line[i]); 			//found++; 		} 	} 		getchar(); 		return found; } 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; 	return i; }  int strindex(char s[],char t[]) { 	int i,j,k; 	for(i=0;s[i]!='\0';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; }  如果想输入比较大，数组改大点，或者用vector。

user: user-0
content: 引用 3 楼 fussier 的回复:[quote=引用 2 楼 fussier 的回复:]  if(c=='\n') s[i++]=c;   改成  if(c=='\n') s[i++]=‘\0’;   strindex 第二个for循环后面有个逗号，我不知道这是不是有意为之，问一下这个函数是干啥的吗？  分号，说错了[/quote]  你的改动好像还是不行 sringdex函数中的第二个for循环后的分号是必要的，它执行的是一个空循环。这个函数的作用是寻找输入中是否含有'ould'字符 如果有，则返回ould在输入字符中第一次出现的位置并打印

user: user-2
content: #include <stdio.h> #include <string.h> #include <ctype.h> #define MAXLINE 1000 int getline(char line[],int max); int strindex(char sourse[],char searchfor[]);  char v[]="ould";  char pattern[]="ould";  int main() { 	char line[5][MAXLINE]={0}; 	int found=0;  	for(int i=0; i<5; i++) 	{ 		getline(line[i],MAXLINE); 	 	} 	for(int i=0; i<5; i++) 	{ 		if(strindex(line[i],pattern)>=0) 		{ 			printf("%s",line[i]); 			//found++; 		} 	} 		getchar(); 		return found; } 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; 	return i; }  int strindex(char s[],char t[]) { 	int i,j,k; 	for(i=0;s[i]!='\0';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; }  如果想输入比较大，数组改大点，或者用vector。

user: user-2
content: 建立一个二维数组，多次输入，然后保存起来，再进行ould比较包含字串的打印出来。

user: user-3
content: 引用 2 楼 fussier 的回复: if(c=='\n') s[i++]=c;   改成  if(c=='\n') s[i++]=‘\0’;   strindex 第二个for循环后面有个逗号，我不知道这是不是有意为之，问一下这个函数是干啥的吗？  分号，说错了

user: user-3
content: if(c=='\n') s[i++]=c;   改成  if(c=='\n') s[i++]=‘\0’;   strindex 第二个for循环后面有个逗号，我不知道这是不是有意为之，问一下这个函数是干啥的吗？

user: user-4
content: 建议用二维数组