将字符串转换为大写字母

时间:2015-10-04 04:16:46

标签: c++ c++11

嘿大家,所以这里是我的代码。我想将字符串转换为upperCase,即“Hello World”转换为“HELLO WORLD”。但我得到这个错误,不知道这是什么。 C ++新手:p

这是教授要我做的事情: “函数upConvert是将ascii字符的C ++字符串转换为适当大小的动态分配字符数组(旧式C字符串)。字符数组必须与字符串具有相同的ascii字符,除了所有小写字符变成大写。“

char* upConvert(const string& s ){

for(unsigned int l = 0; l < s.length(); l++)
{
    s[l] = toupper(s[l]);
}

我得到的错误:

read-only variable is not assignable
    s[l] = toupper(s[l]);

2 个答案:

答案 0 :(得分:2)

您将s作为常规参考传递给upConvert,因此无法更改。我要说删除const,但这个解决方案看起来不像教授所要求的那样。

答案 1 :(得分:1)

好吧,我将尝试不给你代码答案,但这是一种解决方法......

  1. 正确分配char数组并记住null终止
  2. 查看 strcpy 作为转化方式
  3. 然后为了转换为大写,我会看一下迭代 通过你的char数组并使用字符转换字符 的在toupper()即可。
  4. 检查出来:http://www.cplusplus.com/reference/string/string/c_str/