【发布时间】:2014-06-05 10:07:03
【问题描述】:
作为学习指针的练习的一部分,我尝试创建一个函数
这将查找字符串 t 是否在字符串 s 的末尾,并在 true 时返回 1,在 false 时返回 0。
但似乎即使条件正确,我也得到 0。
这是我的代码:
int strend(char *s, char *t)
{
int flag = 0;
if (!s || !t)
return 0;
while(*s)
{
if (*s==*t){
s++;
t++;
flag = 1;
}
else{
flag = 0;
s++;
}
}
if (!*t) return flag;
else return 0;
}
int main()
{
char first[15] = "first";
char second[] ="t";
printf("strend : %d", strend(first,second));
return 0;
}
我看不出我在哪里搞砸了。
【问题讨论】:
-
附带说明,不要这样称呼你的函数。以
str开头的函数名是保留的。 -
为我返回 1(如预期)
-
返回 1 给我作为您的输入。您可以将 while 循环更改为 while(*s && *t)
-
适用于
first/t(1)、first/st(1)、first/ts(0)。我没看到问题。 -
在我退出并重新启动程序后,它现在似乎可以工作了。 Meby 它是一个陷阱或什么的......谢谢大家的时间:-)