【万人千题】C语言12.3反转字符串总结
目录
反转字符串 - 反转字符串 - 力扣(LeetCode) (leetcode-cn.com)
一:知识点
概念:
反转字符串就是将一个字符串的 最后一个字符与第一个字符交换,倒二个字符与第二个交换......直到所有的字符都被交换完毕。
基本上用双指针就可以解决
#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = "helloworld";
int len = strlen(arr);
char* left = arr;
char* right = arr + len - 1;
printf("交换前:%s\n", arr);
while (right - left>1)
{
char tmp = *right;
*right = *left;
*left = tmp;
left++;
right--;
}
printf("交换后:%s", arr);
return 0;
}
这里给的是采用指针的方法,一个指针left指向首元素,一个指针right指向尾元素。用指针相减表示两指针之间元素,来判断是否需要再进行交换。 直到交换完毕即可。
二:习题及剖析
反转字符串 - 反转字符串 - 力扣(LeetCode) (leetcode-cn.com)
void reverseString(char* s, int sSize)
{
int i=0;
int j=sSize-1;
while(i<j)
{
char tmp=s[i];
s[i]=s[j];
s[j]=tmp;
j--;
i++;
}
}
这里采用下标引用的方式,当然,使用指针也可以,基本上思路与上面大致相同。
三:小总结
反转字符串不是很难,希望大家都可以掌握,一起加油把。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了