【发布时间】:2016-11-17 14:59:12
【问题描述】:
大家好,我有一个我似乎无法解决的任务。我得到一个 char* 字符串,我需要使用位操作将所有大写字母(一切都是 ASCII)变成小写。我正在添加我的代码,但它一直在崩溃。
#include <iostream>
#include <cstring>
using namespace std;
void convertToLower(char* string)
{
for (unsigned int i = 0; i < strlen(string); i++)
{
if (string[i] >= 65 && string[i] <= 90)
{
string[i] |= 32;
}
}
cout << string << endl;
}
int main()
{
convertToLower("Hello");
return 0;
}
【问题讨论】:
-
你怎么称呼它?你要传递给它什么?
-
ideone.com/53laPq 对我来说一切都好。您可能通过提供字符串文字来调用它,不要这样做。那是只读存储器。
-
还要确保你的字符串是空终止的。
-
请edit您的问题提供minimal reproducible example。
-
与您的问题没有直接关系:不要使用幻数。
65->'A',90->'Z'等