【发布时间】:2015-12-02 17:15:06
【问题描述】:
我现在正在编写的程序遇到了一些问题。
- strstr 仅在我的字符串结尾处输出我的子字符串
- 之后还会输出一些垃圾字符
- 我遇到了“const char *haystack”的问题,然后向它添加输入,所以我使用 fgets 和 getchar 循环来解决
- 在某个地方,它使用了一个子字符串,该子字符串不仅位于末尾,而且随后我输出了子字符串,而字符串的其余部分在该处发生
这是我的主要内容:
int main() {
char haystack[250],
needle[20];
int currentCharacter,
i=0;
fgets(needle,sizeof(needle),stdin); //getting my substring here (needle)
while((currentCharacter=getchar())!=EOF) //getting my string here (haystack)
{
haystack[i]=currentCharacter;
i++;
}
wordInString(haystack,needle);
return(0);
}
和我的功能:
int wordInString(const char *str, const char * wd)
{
char *ret;
ret = strstr(str,wd);
printf("The substring is: %s\n", ret);
return 0;
}
【问题讨论】:
-
haystack 中缺少一个终止符 '\0',会给你带来各种麻烦。