#include
char *match(char *s, char ch); /* 函数声明 */
int main(void ) {
char ch, str[80], *p = NULL;
scanf("%s", str);
ch = getchar();
if ((p = match(str, ch)) != NULL)
printf("%s\n", p);
else
printf("Not Found\n");
return 0;
}
char *match(char *s, char ch) {
int i, n = 0;
for (i = 0; i < 80; i++) {
if (ch == *(s + i))
return (s + i);
n++;
}
if (n == 80)
return NULL;
}
输出结果一直是"Not Found",而且我刚输入完字符串的时候按回车就直接得结果,不能把ch字符输入;为什么呢
修改如下,供参考:
#include <stdio.h>
char* match(char* s, char ch); /* 函数声明 */
int main(void) {
char ch, str[80], * p = NULL;
scanf("%s", str);
scanf(" %c", &ch); //ch = getchar(); 修改
if ((p = match(str, ch)) != NULL)
printf("%c\n", *p); //printf("%s\n", p); 修改
else
printf("Not Found\n");
return 0;
}
char* match(char* s, char ch) {
int i, n = 0;
for (i = 0; *(s + i); i++) { //for (i = 0; i < 80; i++) 修改
if (ch == *(s + i))
return (s + i);
//n++; 修改
}
//if (n == 80)修改
return NULL;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: