C言語のきほん「ポインタの基本(18)ポインタによる文字列の操作(3)大文字・小文字で表示」

スポンサーリンク
C言語

本ブログでは、これまでに、<ctype.h>で提供されるtoupper関数とtolower関数を使って、英字(アルファベット文字)を大文字あるいは小文字に変換するプログラムをご紹介している。

そこでは、添字演算子[ ]を使用した。

今回は、ポインタを活用して、文字列内の英字(アルファベット文字)を大文字あるいは小文字に変換するプログラムをご紹介しよう。

//文字列内の英字を大文字・小文字に変換するプログラム

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

//文字列内の英字を大文字に変換
void str_toupper(char *s)
{
    while (*s)
    { 
    *s = toupper(*s);
    s++; 
    }
    
}

//文字列内の英字を小文字に変換
void str_tolower(char *s)
{
    while (*s)
    { 
    *s = tolower(*s);
    s++; 
    }
}

int main(void)
{
    char str[128];

    printf("文字列を入力してください:");
    scanf("%s",str);

    str_toupper(str);
    printf("大文字:%s\n",str);

    str_tolower(str);
    printf("小文字:%s\n",str);

    return 0;

}

実行結果

文字列を入力してください:Dinosaur
大文字:DINOSAUR
小文字:dinosaur

関数str_toupperと関数str_tolowerは、while文で文字列sを走査する。

先頭文字から始めて、ポインタのインクリメントによって次の文字に着目する動作を、ナル文字に出会うまで繰り返す。

参考)新・解きながら学ぶC言語 第2版 柴田望洋 (監修・著)、 由梨かおる(著)SBクリエイティブ

コメント

タイトルとURLをコピーしました