C ++中的字符串转换

时间:2015-11-15 17:30:53

标签: c++ string

我试图将每个A转换为Q.然后B转换为W,C转换为E.

我带着这个代码到达但它不起作用。我对c ++很陌生,所以我非常感谢你的帮助

#include <iostream>
#include <string>

using namespace std;

void convert(string& s)
{
    for (int i = 0; i < s.length(); i++)
    {
        if (i = 'A')
        {
            s[i] = 'Q';
        }
        else if (i = 'B')
        {
            s[i] = 'W';
        }
        else if (i = 'C')
        {
            s[i] = 'E';
        }
    }

}
int main()
{
string s;
cout << "enter string" << endl;
getline(cin, s);
convert(s);
cout << s;
return 0;
}

1 个答案:

答案 0 :(得分:4)

===的经典新手错误。前者是赋值运算符,后者则检查相等。

=语句中的所有if替换为==。此外,i语句中的if应替换为s[i]。所以你的代码将是:

if (s[i] == 'A')
  ....

在编译器上启用更多警告将警告您不要这样做。