C言語で文字の大文字と小文字を入れ替える際の注意点
C言語では、文字の大文字小文字の入れ替えには以下の点に留意してください。
- C言語では文字変数に文字のASCIIコードを格納している。大文字と小文字のASCIIコードは32の差がある(大文字のほうが32大きい)ことを利用することで、大文字と小文字の変換が可能。
- 大文字・小文字の変換を行う際には、文字がアルファベットかどうかを判定する必要がある。アルファベットのASCIIコードは、大文字が65-90、小文字が97-122の範囲にあることを利用して判定が行える。
- 大文字小文字変換の際には、文字が小文字か大文字かを判定し、その結果に応じて変換を行います。
- 大文字小文字の変換操作では、データを上書きしないように、一度テンポラリ変数に格納してから代入する必要がある。
以下のC言語のサンプルコードでは、文字列の大文字と小文字を入れ替えることができます。
#include <stdio.h>
void swapCase(char *str) {
while (*str != '\0') {
if (*str >= 'A' && *str <= 'Z') {
*str += 32; // 大写字母转换为小写字母
} else if (*str >= 'a' && *str <= 'z') {
*str -= 32; // 小写字母转换为大写字母
}
str++;
}
}
int main() {
char str[100];
printf("请输入字符串:");
fgets(str, sizeof(str), stdin);
swapCase(str);
printf("大小写互换后的字符串:%s\n", str);
return 0;
}
先のコードでは、文字列内の各文字を反復処理し、文字列であるかどうかを判定し、判定結果に応じて大文字小文字を切り替えるswapCase関数を用いて大文字小文字を入れ替えています。最後に、入れ替えた文字列を出力します。