我正在尝试创建一个函数来计算特定字符在字符串中的使用次数。给我错误的部分是:
s[i] = tolower(s[i]);
代码:
#include <iostream>
#include <string>
using namespace std;
unsigned howMany(char c, const string & s);
string changeCase(const string & s);
int main() {
char z;
string name;
cout << "Enter char and string: ";
cin >> z;
getline(cin, name, '\n');
cout << howMany(z, name) << endl;
cout << changeCase(name) << endl;
}
unsigned howMany(char c, const string & s) {
unsigned count = 0;
for (unsigned i = 0; i < s.size(); i++)
{
if (c == s[i]) { count++; }
if (isupper(s[i])){ s[i] = tolower(s[i]);
count++;
}
}
return count;
}
最佳答案
您将 s 声明为 const。你无法改变它。
关于c++ - 错误 : Expression must be a modifiable lvalue using strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34215855/