即使在 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 感兴趣。然后给我发邮件到 别忘了使用GDB 调试器或strace(1) 来了解Linux 上程序的行为 Anurag Pathak 的简介中提到了 C++;我的评论是基于该公开资料(没有提到 C) 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 墨西哥

如何在 ubuntu 20.04 中安装编译器 g++-4.8.5

Ubuntu安装C编译器

ubuntu20.04无法安装gcc

ubuntu20.04无法安装gcc

ubuntu20.04无法安装gcc