在这里,我们有两种方式。第一种就是递归,第二种是循环。
我们假设这里有abcde这个字符串存在数组中,我们要做的第一步就是将a拿出来放在一个临时变量里面去,然后再将a替换成e,之后再将最后一个字符换成\0,当字符串长度等于1时停止递归。
循环相对更容易理解一些。我们就是将对称的字符进行交换,所以在循环中我们就让下标加起来为长度减一的成员进行交换即可。
int my_strlen(char* arr)
{
int count = 0;
while (*arr!='\0')
{
count++;
arr++;
}
return count;
}
void reverse(char arr[])
{
int len = my_strlen(arr);
int tmp = arr[0];
arr[0] = arr[len - 1];
arr[len - 1] = '\0';
if (my_strlen(arr) > 1)
reverse(arr + 1);
arr[len - 1] = tmp;
}
int main()
{
char arr[] = "abcdef";
reverse(arr);
printf("%s\n", arr);
return 0;
}
#include<stdio.h>
int my_strlen(char* arr)
{
int count = 0;
while (*arr != '\0')
{
count++;
arr++;
}
return count;
}
void reverse_string(char arr[])
{
int len = my_strlen(arr);
for (int i = 0; i < (len/2); i++)
{
int tmp = 0;
tmp = arr[i];
arr[i] = arr[5-i];
arr[5 - i] = tmp;
}
}
int main()
{
char arr[] = "abcdef";
reverse_string(arr);
printf("%s\n", arr);
return 0;
}
祝:“码”思泉涌,下“指”如有神。?