我尝试使用编写代码strrev()。我包括了,<string.h>但仍然出现“未定义引用strrev”错误。我发现strrev()根本没有手册页。为什么?Linux不支持strrev()吗?
3 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
不幸的是,strrev似乎glibc的缺少string.h。
显然,我参加了一些代码晚会,但是我喜欢这种实现。
#define MAX_CHARS 10000// safe_usub -- perform safe unsigned subtractionsize_t safe_usub (size_t x, size_t y) {
return x > y ? x - y : y - x ;}char* str_reverse (const char* const str) {
if (!str) { return NULL; }
size_t len = strnlen(str, MAX_CHARS);
char* new = malloc( sizeof(char) * len );
size_t i;
for (i = 0; i < len; i++) {
new[i] = str[ safe_usub(i + 1, len) ];
}
new[i] = 0;
return new;}- 3 回答
- 0 关注
- 805 浏览
添加回答
举报
0/150
提交
取消
