即使在 Ubuntu 20.04、编译器 gcc 9.3.0 中包含 string.h 后,也无法使用 strrev() 函数。我能做些啥? [复制]
Posted
技术标签:
【中文标题】即使在 Ubuntu 20.04、编译器 gcc 9.3.0 中包含 string.h 后,也无法使用 strrev() 函数。我能做些啥? [复制]【英文标题】:strrev() function can't be used even after including string.h in Ubuntu 20.04, compiler gcc 9.3.0. What can I do? [duplicate]即使在 Ubuntu 20.04、编译器 gcc 9.3.0 中包含 string.h 后,也无法使用 strrev() 函数。我能做些什么? [复制] 【发布时间】:2021-05-17 11:54:32 【问题描述】:即使在 Ubuntu 20.04 中包含 string.h 后,我也无法使用 strrev() 函数。编译器说未定义对 strrev() 的引用,但 strlen() 和其他函数有效。我该怎么办?
【问题讨论】:
既然你在学习C++,它有一个强大的std::string
类。考虑使用它。请注意 2021 年的 UTF-8 is used everywhere。如果您使用 GCC 编译,请使用所有警告和调试信息调用它:所以 gcc -Wall -Wextra -g
用于 C 代码,g++ -Wall -Wextra -g
用于 C++ 代码。顺便说一句,您可能会对RefPerSys 感兴趣。然后给我发邮件到 strrev()
不是 C 标准库函数
【参考方案1】:
你需要自己实现。
char *strrev(char *str)
char *end, *wrk = str;
if(str && *str)
end = str + strlen(str) - 1;
while(end > wrk)
char temp;
temp = *wrk;
*wrk++ = *end;
*end-- = temp;
return str;
【讨论】:
以上是关于即使在 Ubuntu 20.04、编译器 gcc 9.3.0 中包含 string.h 后,也无法使用 strrev() 函数。我能做些啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我需要在 ubuntu 20.04 上安装 gcc4.9 | matlab 墨西哥