此代码应将大写转换为小写,反之亦然。问题是它返回两者 上下..例如,当我输入单词“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;
}
答案 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;
}