今回は、「文字列内の英字を大文字・小文字で表示」するプログラムである。
なお、本プログラムは、Windows 11 Home(23H2)上で、 Visual Studio Code(1.88.1)を使用して作成し、gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 でコンパイルしている。
文字列内の英字を大文字・小文字で表示するプログラム
//文字列内の英字を大文字・小文字で表示するプログラム
#include <ctype.h>
#include <stdio.h>
//文字列s内の英字を大文字で表示
void put_upper(const char s[])
{
int i = 0;
while(s[i])
putchar(toupper(s[i++]));
}
//文字列s内の英字を小文字で表示
void put_lower(const char s[])
{
int i = 0;
while(s[i])
putchar(tolower(s[i++]));
}
int main(void)
{
char str[128];
printf("文字列を入力してください:");
scanf("%s",str);
printf("大文字:"); put_upper(str); putchar('\n');
printf("小文字:"); put_lower(str); putchar('\n');
return 0;
}
実行結果
文字列を入力してください:LeSSon1
大文字:LESSON1
小文字:lesson1
英字を大文字あるいは小文字に変換するために利用しているのが、<ctype.h>で提供されるtoupper関数とtolower関数である。
toupper関数
引数に受け取った文字が小文字であれば、大文字に変換した文字を返却して、そうでなければ、受け取った文字をそのまま返却する。
tolower関数
引数に受け取った文字が大文字であれば、小文字に変換した文字を返却して、そうでなければ、受け取った文字をそのまま返却する。
これらの関数は、英字以外の文字は変換しない仕様となっている。変換対象は半角文字で、漢字など全角文字などには対応していない。
(参考)新・解きながら学ぶC言語 第2版 柴田望洋 (監修・著)、 由梨かおる(著)SBクリエイティブ
コメント