猿问

Linux中没有strrev()函数吗?

我尝试使用编写代码strrev()。我包括了,<string.h>但仍然出现“未定义引用strrev”错误。

我发现strrev()根本没有手册页。为什么?

Linux不支持strrev()吗?


波斯汪
浏览 761回答 3
3回答

慕姐8265434

不幸的是,strrev似乎glibc的缺少string.h。显然,我参加了一些代码晚会,但是我喜欢这种实现。#define&nbsp;MAX_CHARS&nbsp;10000//&nbsp;safe_usub&nbsp;--&nbsp;perform&nbsp;safe&nbsp;unsigned&nbsp;subtractionsize_t&nbsp;safe_usub&nbsp;(size_t&nbsp;x,&nbsp;size_t&nbsp;y)&nbsp;{ &nbsp;&nbsp;return&nbsp;x&nbsp;>&nbsp;y&nbsp;?&nbsp;x&nbsp;-&nbsp;y&nbsp;:&nbsp;y&nbsp;-&nbsp;x&nbsp;;}char*&nbsp;str_reverse&nbsp;(const&nbsp;char*&nbsp;const&nbsp;str)&nbsp;{ &nbsp;&nbsp;if&nbsp;(!str)&nbsp;{&nbsp;return&nbsp;NULL;&nbsp;} &nbsp;&nbsp;size_t&nbsp;len&nbsp;=&nbsp;strnlen(str,&nbsp;MAX_CHARS); &nbsp;&nbsp;char*&nbsp;&nbsp;new&nbsp;=&nbsp;malloc(&nbsp;sizeof(char)&nbsp;*&nbsp;len&nbsp;); &nbsp;&nbsp;size_t&nbsp;i; &nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;len;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;new[i]&nbsp;=&nbsp;str[&nbsp;safe_usub(i&nbsp;+&nbsp;1,&nbsp;len)&nbsp;]; &nbsp;&nbsp;} &nbsp;&nbsp;new[i]&nbsp;=&nbsp;0; &nbsp;&nbsp;return&nbsp;new;}
随时随地看视频慕课网APP
我要回答