经典算法面试题目-翻转一个C风格的字符串(1.2)
发布日期:2021-06-29 13:36:45
浏览次数:2
分类:技术文章
本文共 1533 字,大约阅读时间需要 5 分钟。
题目:
Write code to reverse a C-Style String. (C-String means that “abcd” is represented as five characters, including the null character.)写代码翻转一个C风格的字符串。(C风格的意思是”abcd”需要用5个字符来表示,包含末尾的 结束字符)
解答:
这道题如果就是要考察你有没有注意到C风格字符串最后的那个结束符,那我觉得还是像书 上写的那样,在代码中有所体现。代码如下:博主表示对这个第一种方法有点懵逼,有懂的大神麻烦教导一下,O(∩_∩)O谢谢。指针方面,我基本上没怎么学~~~
void swap(char &a, char &b){ a = a^b; b = a^b; a = a^b;}void reverse1(char *s){ if(!s) return; char *p = s, *q = s; while(*q) ++q; --q; while(p < q) swap(*p++, *q--);}
否则的话,可以直接获取字符串的长度,然后从两头开始一一交换相应的字符。代码如下:
void swap(char &a, char &b){ a = a^b; b = a^b; a = a^b;}void reverse2(char *s){ int n = strlen(s); for(int i=0; i < n/2; ++i) swap(s[i], s[n-i-1]);}
完整代码如下:
#include#include using namespace std;void swap(char &a, char &b){ a = a^b; b = a^b; a = a^b;}void reverse2(char *s){ int n = strlen(s); for(int i=0; i
我对第一种方法的理解:
#include#include #include using namespace std;void swap(char &a, char &b){ a = a^b; b = a^b; a = a^b;}void reverse2(char *s){ int n = strlen(s); for(int i=0; i
详细解释下c风格字符串:
c风格的字符串是用数组存放的,一般要以’\0’结束 而c++主要以string类代替,更加高效,且不易出错例如:string str = “123”;就是c++的风格;
char str[4]=”123”;就是c风格 string是c++中的关键字,和int,float等等一样, 在c++中,string 定义的变量可以直接存储字符串。在C语言中是没有这种直接存储字符串的变量的。 [ ]里面是4,是因为,C风格的字符串,在最后都会默认添加’\0’,所以”123”本质上是1 2 3 ‘\0’ 它其实是占四个字节。所以如果你只定义3个存储空间的话,那’\0’这个字符串终止标志就回被丢弃,那么以后的应用就回出现问题。举个例子:你用strlen(str)试试查看长度为3时的这个字符串的长度,很可能就会有问题。 ‘\0’ 是c字符串都存在的。转载地址:https://chenhx.blog.csdn.net/article/details/51969530 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月12日 03时05分38秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
「第六篇」对于电赛,我们应该看重什么?
2019-04-29
树莓派翻车了
2019-04-29
这位电子工程师,你不能错过。
2019-04-29
「重磅猜题之第二篇」2019年大学生电子设计竞赛
2019-04-29
干货分享 JVM 之第 3 篇 —— Java 内存结构相关
2019-04-29
基于 Hystrix 高并发服务限流第 2 篇 —— 服务隔离(线程池隔离、信号量隔离)
2021-07-02
SpringBoot 整合 JWT 实现统一认证
2021-07-02
TypeError: this.getOptions is not a function
2021-07-02
el-table 二维数组合并行
2021-07-02
UR5e机械臂运行一直阻塞在waitForServer
2021-07-02
ROS把pkg1下的某个头文件和源文件生成动态链接库供pkg2调用
2021-07-02
使用urdf_tutorial快速可视化urdf文件
2021-07-02
SQl 数据完整性(随堂博客)
2021-07-02
左连接、右连接、内连接
2021-07-02
MySQL DQL语句基础(随堂博客)
2021-07-02
利用MySQL进行数据复杂查询(1)
2021-07-02
MySQL 表与表之间的关系
2021-07-02
pymysql 的基础应用
2021-07-02
Python 管理程序改进——连接MYSQL
2021-07-02