Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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++_C++_C++11_Uppercase - Fatal编程技术网

大写函数C++

大写函数C++,c++,c++11,uppercase,C++,C++11,Uppercase,我的转换字符串为大写函数有问题。我现在有两个函数,反向单词和大写字母。reverse当前可以工作并向后输出信息,但由于某些原因,大写字母不能工作。我有一个菜单,允许用户输入一个单词,然后选择反转或改为大写 下面是大写函数的代码片段 string Upperword(string originalString){ string localString; int len = originalString.length(); for (int i = 0 ; i <&l

我的转换字符串为大写函数有问题。我现在有两个函数,反向单词和大写字母。reverse当前可以工作并向后输出信息,但由于某些原因,大写字母不能工作。我有一个菜单,允许用户输入一个单词,然后选择反转或改为大写

下面是大写函数的代码片段

string Upperword(string originalString){
    string localString;
    int len = originalString.length();

    for (int i = 0 ; i << len; i++)
        localString = toupper(originalString[i]);

    return localString;
}

有人知道为什么它不会以大写形式输出单词吗?

正如其他人所指出的:

 i << len
您正在尝试将字符分配给字符串。您希望附加到字符串

你可能想要更接近这一点的东西:

string Upperword(const string& originalString)
{
    string localString;
    int len = originalString.length();
    for (int i = 0 ; i < len; i++)
    {
        localString += toupper(originalString[i]);
    }
    return localString;
 }
撇开打字错误不谈 您需要首先设置localString的大小。它生成为空,因此设置其元素将使其崩溃。例如,可以通过localString.resizeoriginalString.length;在你做任何事之前。
条件应该是C++,你有STD::String库,如果你使用这个处理字符串,那么只需调用函数/ToePult.ToupPulter,如果它是char数组,那么它只是触发器。向上投票。这是一个由std::strings极大膨胀的接口引起的错误,而不是其他任何错误。您应该将::toupper包装在lambda中以使其更正确:[]无符号字符c{return std::toupperc;}请看@Kevin:我不打算对此进行争论!你被录用了。疯狂地浏览我所有的代码。。。
localString = toupper(originalString[i]);
string Upperword(const string& originalString)
{
    string localString;
    int len = originalString.length();
    for (int i = 0 ; i < len; i++)
    {
        localString += toupper(originalString[i]);
    }
    return localString;
 }
#include <algorithm>
std::string Upperword(std::string originalString){
    std::string localString = std::move(originalString);
    std::transform(
        localString.begin(),
        localString.end(),
        localString.begin(), 
        [](unsigned char c){return std::toupper(c);}
    );
    return localString;
}