【发布时间】:2015-03-21 20:01:49
【问题描述】:
我写了一个函数,它获取 2 个字符串并递归比较它,有一些规则:如果有双字母或小而不是大写/相反,则返回 1,否则返回 0。如果s1 是大写字母或小写字母,它应该返回1,而s 是相反的但不知道如何,我尝试了*s-32/*s+32,但我不确定使用哪个或何时使用。
这是功能代码:
int CompareS(char *s, char *s1)
{
if (*s == NULL && *s1==NULL)
return 1;
if (strncmp(s, s1, 1) != 0 )
{
if (strncmp(s, s - 1, 1) == 0)
return CompareS(s + 1, s1);
else
return 0;
}
else
return CompareS(s + 1, s1 + 1);
}
【问题讨论】:
-
你的问题是什么?
-
这看起来不对...
strncmp(s, s - 1, 1),我只看到s而没有看到s1 -
记住
char c = *s;或char c = s[0]将给出字符串的第一个字符。
标签: c string algorithm recursion