使用标准输入,用户输入1个字母。如果它是一个有效的小写字母,那么该程序将打印出大写版本。
答案 0 :(得分:10)
答案 1 :(得分:2)
这取决于编码;如果您只想处理ASCII,可以利用英文字母按顺序排列的事实。所以你的代码看起来像这样:
bool isLowerCase( char ch ) {
return ch >= 'a' && ch <= 'z';
}
char toUpperCase( char ch ) {
return (ch - 'a') + 'A';
}
如果您正在处理Unicode字符串,您应该考虑为此作业使用适当的库,例如ICU。
答案 2 :(得分:0)
从
中输入的ASCII值中减去32答案 3 :(得分:0)
if (c >= 'a' && c <= 'z') c &= 0xBF;
答案 4 :(得分:0)
如果你考虑像.ToUpper()这样的方法,你可以使用我写的这个方法:
char* ToUpper(char *lowerText)
{
int i;
const int length = strlen(lowerText);
char *ptrUpperCase = malloc(length + 1);
for(i = 0; i < length; i++)
{
if((lowerText[i] >= 0x61) && (lowerText[i] <= 0x7A))
*(ptrUpperCase + i) = lowerText[i] - 0x20;
else
*(ptrUpperCase + i) = lowerText[i];
}
*(ptrUpperCase + length) = 0x00;
return ptrUpperCase;
}
并且用于调用它:
ToUpper("Apple2014");
它会返回一个指针,参考“APPLE2014”。
我希望这会有用;