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?」を出力することを期待していました。しかし、代わりに「WHATS」を得ました。私は何を間違えましたか?