我试图将每个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;
}
答案 0 :(得分:4)
=
和==
的经典新手错误。前者是赋值运算符,后者则检查相等。
将=
语句中的所有if
替换为==
。此外,i
语句中的if
应替换为s[i]
。所以你的代码将是:
if (s[i] == 'A')
....
在编译器上启用更多警告将警告您不要这样做。