大写到小写,反之亦然

时间:2013-09-17 10:01:49

标签: c++ uppercase lowercase

此代码应将大写转换为小写,反之亦然。问题是它返回两者 上下..例如,当我输入单词“tuna”时,它返回“TUNAtuna”..请帮助

string rev_letter(string s)
{
    string word = s;
    string final_word="";
    char c;
    for(int i = 0 ; i<=(word.length()-1);i++)
    {
    c=word.at(i);
    if(isupper(c))
    {
        putchar(tolower(c));
        final_word+=c;
    }
    else
    {
        putchar(toupper(c));
        final_word+=c;
    }

    }
    return final_word;
} 

1 个答案:

答案 0 :(得分:1)

当您使用putchar时,您可以按照预期(到屏幕)打印字符,但将字符放入final_word。在final_word中,你实际上放了第一个单词。

试试这个:

string rev_letter(string s)
{
    string word = s;
    string final_word="";
    char c;
    for(int i = 0 ; i<(word.length());i++)
    {
       c=word.at(i);
       if(isupper(c))
       {
           final_word+=tolower(c);
       }
       else
       {
           final_word+=toupper(c);
       }
    }

    return final_word;
}