我实现了 toUpper()。它不能 100% 工作。
代码 :
char* toUpper(char* string)
{
char* sv = string;
while(*sv++ != '\0')
{
if( int(*sv) >= 97 || int(*sv) <= 122) //Only if it's a lower letter
*sv = char( *sv - 32);
}
return string;
}
我知道小写字母的数字从 97 到 122(ASCII 格式),大写字母的数字从 65 到 90。从小写字母到大写字母之间正好有 32 个数字。所以我只是从较低的字符中减去了 32。
我调用此函数的代码:
char h[] = "Whats up?";
cout << toUpper(h) << endl;
我希望程序输出“WHATS UP?” 但相反,我得到了“什么”。我做错了什么?