随笔- 509  文章- 0  评论- 151  阅读- 22万 

2014-03-18 01:30

题目:反转一个char *型的C/C++字符串。

解法:一头一尾俩iterator,向中间靠拢并且交换字符。

代码:

复制代码
 1 // 1.2 Implement a function void reverse(char *str) in C or C++ which reverses a null-terminated string.
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 void reverse(char *str)
 7 {
 8     if (nullptr == str) {
 9         return;
10     }
11 
12     size_t i;
13     size_t len = strlen(str);
14     char ch;
15 
16     for (i = 0; i < len - 1 - i; ++i) {
17         ch = str[i];
18         str[i] = str[len - 1 - i];
19         str[len - 1 - i] = ch;
20     }
21 }
22 
23 int main()
24 {
25     char str[1000];
26 
27     while (scanf("%s", str) == 1) {
28         reverse(str);
29         printf("%s\n", str);
30     }
31 
32     return 0;
33 }
复制代码

 

 posted on   zhuli19901106  阅读(546)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示