首先,对不起我的英语,我是法国人。我想写一个函数,my_revstr
. 这个函数反转一个字符串,但是当我测试它不起作用时,它会启动控制台并崩溃。
要反转我的字符串,我想交换相反的字符,例如:换成8 chars 0-7, 1-6, 2-5, 3-4
. 我使用了一些功能:my_strlen (return the lenght of the string)
,,my_swap (swap the values)
这个功能有效。这是代码:
char *my_revstr(char *str)
{
int i;
int n;
i = my_strlen(str);
if (i%2 == 1) /* odd str*/
{
i = i/2 - 1;
n = i + 2;
while (i >= 0)
{
my_swap(str + i, str + n);
i = i - 1;
n = n + 1;
}
}
else
{
i = i / 2 - 1;
n = i + 1;
while (i >= 0)
{
my_swap(str + i, str + n);
i = i - 1;
n = n + 1;
}
}
}
这是测试:
int main()
{
my_putstr(my_revstr("Bonjour"));
return 0;
}
你能帮我理解为什么它不起作用吗?