c语言实现字符串的逆转(多方法)
2023-12-31 20:31:05
思路
在这里,我们有两种方式。第一种就是递归,第二种是循环。
一
我们假设这里有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;
}
?
祝:“码”思泉涌,下“指”如有神。?
文章来源:https://blog.csdn.net/2301_79990723/article/details/135319012
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!