使用递归的方法,将数组里的字符倒序
#include
#include
int stringh(char arr[])
{
int count = 0;
while (*arr != '\0')
{
count++;
arr++;
}
return count;
}
void reverse_string(char *arr)
{
char tmp = arr[0];
int sz = stringh(arr);
arr[0] = arr[sz - 1];
arr[sz - 1] = '\0';
while (stringh(arr + 1) >= 2)
reverse_string(arr + 1);
arr[sz - 1] = tmp;
}
int main()
{
char arr[] = "admc";
reverse_string(arr);
printf("%s\n", arr);
return 0;
}
无法打印出结果,但是数组中字符串长度小于等于3,可以打印出来
使用递归的方法,将数组里的字符倒序
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int strlenh(const char* str)
{
assert(str);
int count = 0;
while (*str++)
{
count++;
}
return count;
}
void reverse_string(char *str)
{
assert(str != NULL);
int len = strlenh(str);
char tmp = *str;
*str = *(str + len - 1);
*(str + len - 1) = '\0';
if (strlenh(str + 1) > 1)
{
reverse_string(str + 1);
}
*(str + len - 1) = tmp;
}
int main()
{
char arr[] = "abcdef";
reverse_string(arr);
printf("%s\n", arr);
system("pause");
return 0;
}