【发布时间】:2017-01-29 12:46:17
【问题描述】:
#include <stdio.h>
#include <string.h>
int main() {
char a[100], b[100];
char *ret;
scanf("%[^\n]s", a);
scanf("%[^\n]s", b);
ret = strstr(a, b);
if (ret != NULL)
printf("its a substring");
else
printf("not a substring");
return 0;
}
我的目的是检查字符串中的父字符串中是否存在子字符串。我从here了解到strstr()函数。
我之前在我的代码中使用过%[^\n]s,它们运行良好。
但是,在这种情况下,只要我在输入一个字符串后按回车/回车,输出就是not a substring。
我做错了什么?
【问题讨论】:
-
试试
scanf("%99[^\n]%*c", a); scanf("%99[^\n]", b); -
程序的输入是什么?预期和实际输出是多少?
-
另外,如果您想阅读整行,我建议您使用
fgets而不是scanf。 -
为什么不直接使用
scanf("%s", a);? -
@JithinPavithran 我想在我的字符串中有多个单词。 %s 不允许这样做。