贴上代码:迭代的方式实现
'//字符串逆序:不可用字符串操作函数' #includevoid swap(char* ch1, char* ch2) '//交换两个字符串' { char tmp = *ch1; *ch1 = *ch2; *ch2 = tmp; } int my_strlen(char* str) '//实现计算字符串字节数' { int count = 0; while (*str != ' ') { count++; str++; } return count; } void reverse_string(char* str) '//实现字符串逆序' { int left = 0; int right = my_strlen(str) - 1; while (left < right) { swap(str+left, str+right); left++; right--; } } int main() { char arr[] = "abcdefgh"; reverse_string(arr); printf("%sn", arr); return 0; }
swap()函数还不如不定义,,这样好写一点。
贴上代码:递归,思路挺难的,重点在于熟悉递归
//递归实现字符串逆序
void reverse_string(char* str)
{
if (*str != ' ')
{
char tmp = *str;
int length = strlen(str);
*str = *(str+ length - 1);
*(str + length - 1) = ' ';
reverse_string(str + 1);
*(str + length - 1) = tmp;
}
}
int main()
{
char arr[] = "abcdefgh";
reverse_string(arr);
printf("%sn", arr);
return 0;
}



