我只是在做一些练习,却陷入尝试将字符串s
的字符更改为字符x
的问题,这是下面的代码:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::vector;
using std::array;
int main()
{
string s{ "Hello" };
for (auto &c : s)
char c{ "x" };
}
但是它抛出了错误:
'c':'std :: string'的间接级别与'_Elem&'T
不同
如果有人可以帮助那将是很好的
答案 0 :(得分:3)
使用算法:
std::fill(begin(s), end(s), ‘X’);
在代码中,您使用字符串文字来初始化char
。您也不想定义新的char
,而是分配给您已经获得的引用。
答案 1 :(得分:2)
尝试将您的for循环替换为:
for(auto &c : s)
c = 'x'
答案 2 :(得分:1)
更改c
的值将更改s
中的字符
#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::vector;
using std::array;
int main()
{
string s{ "Hello" };
for (auto &c : s)
c = 'x';
cout << s;
}