C言語で文字の大文字と小文字を入れ替える際の注意点

C言語では、文字の大文字小文字の入れ替えには以下の点に留意してください。

  1. C言語では文字変数に文字のASCIIコードを格納している。大文字と小文字のASCIIコードは32の差がある(大文字のほうが32大きい)ことを利用することで、大文字と小文字の変換が可能。
  2. 大文字・小文字の変換を行う際には、文字がアルファベットかどうかを判定する必要がある。アルファベットのASCIIコードは、大文字が65-90、小文字が97-122の範囲にあることを利用して判定が行える。
  3. 大文字小文字変換の際には、文字が小文字か大文字かを判定し、その結果に応じて変換を行います。
  4. 大文字小文字の変換操作では、データを上書きしないように、一度テンポラリ変数に格納してから代入する必要がある。

以下の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関数を用いて大文字小文字を入れ替えています。最後に、入れ替えた文字列を出力します。

bannerAds