【发布时间】:2023-03-14 08:51:01
【问题描述】:
int main()
{
string s;
cout << "enter the string :" << endl;
cin >> s;
for (int i = 0; i < s.length(); i++)
s[i] ^= 32;
cout << "modified string is : " << s << endl;
return 0;
}
我在stackoverflow上看到了将大写转换为小写的这段代码。
但是s[i] = s[i]^32这行我听不懂。
它是如何工作的?
【问题讨论】:
-
不用担心看不懂。它不是便携式的,不应该使用。
-
即使仅适用于 ASCII,它也会切换大小写并对字母以外的字符造成不良影响。
-
@MarkRansom 当然,如果您知道您的用例只会是 ASCII,那么这不是问题,但应该记录在代码中。当您对 C++ 标准没有限制的情况下的某些情况进行限制时,您应该记录下来。我也不认为我的说法有任何夸张。 C++ 甚至不需要使用 ASCII 或字符是连续的。
-
@MarkRansom:当然,知识无伤大雅。尽管如此,在过去,很多事情都不同了,并不是所有事情都变得更好。
标签: c++ string uppercase lowercase