所以我试图建立一个函数,它需要一个* char并将其反转。该函数需要两个参数(N是字符串的长度)修改一个字符指针?
void reverse_str(char *str, int N){
char temp;
temp = str[i];
str[i] = str[N-i];
str[N-i] = temp;
if (i == N)
{
return;
}
i++;
reverse_str(*str, N);
}
但由于某种原因,编译器到达代码的第三行时; str[i] = str[N-i];
它返回空指针'\0'
是否可以在不复制的情况下修改str?我是否做过任何错误的声明?
BTW i
是一个等于0的全局值,每次递归调用函数时都会增加。
“N是字符串的长度”。这意味着'str [N-0]'总是NUL。因为根据定义,C字符串具有NUL字符作为位于'strlen'索引处的最后一个字符。 – kaylum
'while(N> 1){swap(&str [0],&str [N-1]); N - = 2; STR ++; ''可以做到。 – chux