Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在strlwr()中使用字符串数据类型_C++_Visual C++_C - Fatal编程技术网

C++ 在strlwr()中使用字符串数据类型

C++ 在strlwr()中使用字符串数据类型,c++,visual-c++,c,C++,Visual C++,C,我在strlwr中使用string作为数据类型时遇到问题,例如: 字符串a; cout>a; strlwr(a); 突然我犯了个错误 “[错误]C:\Users\PC\Documents\C-Free\Temp\Untitled7。cpp:7:E2285在函数main()中找不到与“lstrlwr(字符串)”匹配的项。” 谁能解决这个问题?代码中的第一个问题是,您有一个额外的双qoutes“ 代码> StWrr 不是C++库的一部分,因此它不能工作。你可以使用:-< /P> for (cha

我在
strlwr
中使用
string
作为数据类型时遇到问题,例如:

字符串a;
cout>a;
strlwr(a);
突然我犯了个错误

“[错误]C:\Users\PC\Documents\C-Free\Temp\Untitled7。cpp:7:E2285在函数main()中找不到与“lstrlwr(字符串)”匹配的项。”


谁能解决这个问题?

代码中的第一个问题是,您有一个额外的双qoutes


<>代码> StWrr 不是C++库的一部分,因此它不能工作。你可以使用:-< /P>
for (char &ch:a)
    {
          ch = tolower(ch);
    }

还有另一种方法可以使链接器无法找到lstrlwr。 我使用的是Embarcadero®C++Builder 10西雅图版本23.0.20618.2753, 而且经常会出现这样的问题,尤其是在新项目中弄乱了头文件的顺序之后


关闭预编译的头文件一段时间,直到项目更加稳定。我来这里是因为我也有一个丢失的lstrlwr以及其他投诉。关闭PCH解决了所有这些问题。

我使用这个strlwr(a.c_str());它仍然出现相同的错误!!有一个问题,你从来没有说过错误是什么!对此表示抱歉!!它看起来像“[error]C:\Users\PC\Documents\C-Free\Temp\Untitled7.cpp:7:E2285在函数main()中找不到与“\lstrlwr(string)”匹配的项”@BunThaiDeng不使用
strlwr()这不是一个可移植的函数,它是针对字符串的,所以你应该避免在C++中使用。请用“代码> ToWORE())来查看我的示例代码。查找“<代码> STD::转换< /Cord>”。请提供错误,以便我们能进一步帮助你?@ BunThaiDeng >代码> STD:::(ActhOnEnter),A. Enter(),A.解决你的问题。现在我想你是否想知道这是怎么做的。我会给你带来的疑问,你确实想学习C++并使用最佳的实践。这是我的错误[[错误] c:\用户\PC\Deals\cFiel\Toop\UntTele7.7.CPP:7:E2255找不到匹配''.'LSTLWR](String)'在函数main()中“我这样做只是为了好玩@iharoby我们的方法在这种情况下更好@AnkitAcharya,因为基于范围的for循环更适合清洁剂iterations@Anwesha什么是基于范围的循环?它们是C++14还是什么?我真的从来没有见过,除了Java!我也不同意。如果循环写得很清楚,并且两个变量的正确命名也一样清楚,实际上不可能知道您在这段代码中迭代了什么。@iharob似乎连C++11都没有更新过。在java中,每个范围的循环与<>代码>相同,但是C++中它们更强大,因为可以通过代码>引用引用< /代码>发送对象。here@iharob她没有说循环写得不清楚,但她的意思不是说
基于范围的for
需要更少的代码和更新
    string a;
cout<<"Enter a":"; cin>>a;
//            ^ this is extra
strlwr(a);
string a;
cout << "Enter a :";
cin >> a;
strlwr(a);
#include <iostream>
#include <string>

int
main(void)
{
    std::string example = "ExAmPle";
    for (size_t i = 0 ; i < example.size() ; ++i)
    {
        char character = tolower(example[i]);
        example[i] = character;
    }
    std::cout << example;
    return 0;
}
for (char &ch:a)
    {
          ch = tolower(ch);
    }