文字列を大文字化・小文字化する | Programming Place Plus C言語編 逆引き

C言語編 逆引き 文字列を大文字化・小文字化する

先頭へ戻る

目的

大文字や小文字のアルファベットが混在した文字列について、 大文字や小文字に統一したいとします。 当然、アルファベット以外の文字が変化してはいけません。

方法①(toupper関数や tolower関数を使う)[C89~]

C言語の標準ライブラリには、文字を大文字化する toupper関数や、小文字化する tolower関数があります(ワイド文字の場合は、towupper関数towlower関数があります)。

ただし、これらの関数は、1文字だけが対象であるため、文字列全体に適用するためには、 1文字ずつ適用していく必要があります。
次のサンプルプログラムは、文字列を大文字化しています。

#include <stdio.h>
#include <ctype.h>

static char* toupper_str(char* s)
{
    char* p;
    for (p = s; *p != '\0'; ++p) {
        *p = toupper(*p);
    }
    return s;
}

int main(void)
{
    char s[] = "aB3Cde_fG";

    puts(toupper_str(s));

    return 0;
}

実行結果:

AB3CDE_FG


参考リンク



更新履歴

'2018/4/22 解説中で C95 を(C89 に対して)特別扱いしないように修正。そもそもC言語編は C95ベースなので、余計な説明は省く。

'2017/6/5 新規作成。



逆引きのトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ


このエントリーをはてなブックマークに追加
rss1.0 取得ボタン RSS