C/C++ ポインタ入門 > 文字列関数 > toggleCase
Nobuhide Tsuda
Nov-2013
大文字変換:void my_toggleCase(char *str)
void my_toggleCase(char *str)
{
while( *str != '\0' ) { // 終端のヌル文字を見つけるまで繰り返し
if( *str >= 'a' && *str <= 'z' ) // 英小文字の場合
*str += 'A' - 'a'; // 大文字変換
else if( *str >= 'A' && *str <= 'Z' ) // 英小文字の場合
*str += 'a' - 'A'; // 小文字変換
++str;
}
}
解説:
- while 文で、終端記号のヌル文字('\0')を見つけるまでループします。
- ポインタの指す文字が英小文字('a'~'z')だった場合は大文字('A'~'Z')に変換します
- 英字の文字コードは a から z まで連続なので、大小文字 a のコード差を足すだけで、変換できます。
- 同様に、ポインタの指す文字が大文字('A'~'Z')だった場合は英小文字('a'~'z')に変換します
前:
| 次: