【发布时间】:2019-03-15 12:26:56
【问题描述】:
我是一名 C 语言新手。 我的老师说我们必须写一个项目来: 在没有任何指针(*)的第一个字符串中查找第二个字符串。到目前为止,我已经学习了循环、条件、函数和数组,它们是我唯一的选择。 该项目必须从两个级别的用户那里获取字符串。检查它们并打印结果。
现在我写了一些废话:
int main()
{
char source[MAX_STR_LEN];
char target[MAX_STR_LEN];
int len = 50;
int a;
scanf("%s", &source);
scanf("%s", &target);
for (int i = 0; i <= len; i++)
{
if (strncasecmp(source[i], target[i], strlen(target)) == 0)
{
int a = 1;
if (a == 1)
{
printf("%s is inner of %s", target, source);
}
else
{
printf("%s is NOT inner of %s", target, source);
}
}
}
return 0;
}
但是当我输入两个字符串时,我的项目什么也不打印并自动关闭。我确定我的代码不正确有什么简单的方法吗? 谢谢
【问题讨论】:
-
一个主要问题是
source[i](以及target[i])是一个单个字符,而strncasecmp函数比较字符串. -
即使这个
scanf("%s", &source);也是指针。 -
首先,
scanf("%s", &source);->scanf("%s", source);。