- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在网上找的,到处都有string.h的函数,这两个都没有提到。
是因为什么?它们不是在每个编译器中吗?
最佳答案
它们是 Microsoft C 库中的非标准函数。此后,MS 弃用了它们,取而代之的是重命名函数 _strlwr()
和 _strupr()
:
请注意,MS 文档声称它们是 POSIX 函数,但据我所知它们从来都不是。
如果您需要在非 MS 工具链上使用它们,它们很容易实现。
char* strlwr(char* s)
{
char* tmp = s;
for (;*tmp;++tmp) {
*tmp = tolower((unsigned char) *tmp);
}
return s;
}
关于c - string.h 中的 strupr() 和 strlwr() 是 ANSI 标准的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26327812/
当我在 strlwr 中使用 string 作为数据类型时遇到问题,例如: string a; cout > a; strlwr(a); 突然出现错误! “[错误] C:\Users\PC\Docum
我试图与字符串进行比较,但在此之前我希望它降低以避免比较时出现问题 cannot convert `bool' to `const char*' for argument `2' to `int st
我的代码就像一个文本压缩器,读取普通文本并变成数字,每个单词都有一个数字。它在 DevC++ 中编译但没有结束,然而,它在 Ubuntu 13.10 中不编译。我遇到了一个错误,就像 Ubuntu 中
我试图将字符串从大写转换为小写以检查它是否是回文,但是我不断收到错误: “函数声明不是原型(prototype)” 我已经添加了#include 在标题中,但它仍然不起作用。我该如何解决这个问题? 这
我是该 Realm 的初学者,我对自己的代码有疑问。显示以下两个错误: main.cpp:在函数“int main(int,char **)”中: main.cpp:118:39:警告:格式'%d'期
下面的代码给出了一个非常奇怪的结果: #include #include using namespace std; ifstream f("f1.in"); ofstream g("f1.out"
我在网上找的,到处都有string.h的函数,这两个都没有提到。 是因为什么?它们不是在每个编译器中吗? 最佳答案 它们是 Microsoft C 库中的非标准函数。此后,MS 弃用了它们,取而代之的
我是一名优秀的程序员,十分优秀!