Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語で文字列内の母音を大文字・小文字に変換する方法

文字型データを並べた配列のことを「文字列」と呼びます。

文字列の宣言

C言語で文字列を扱うには、まずchar型の配列を宣言します。

char stringname [size];

例えば char a[50]; と宣言すれば、最大50文字の文字列を格納できます。

文字列の初期化

文字列の初期化には、主に次の2つの方法があります。

  • 1文字ずつ文字定数として代入する方法:
char a[10] = { 'H', 'e', 'l', 'l', 'o', '\0' };
  • 文字列定数でまとめて代入する方法:
char a[10] = "Hello";

文字列へのアクセス

文字列の入出力には制御文字列「%s」を使用します。「%s」は、終端のヌル文字「\0」に到達するまで文字列を扱います。

母音を小文字から大文字へ(またはその逆へ)変換するロジックは次の通りです。文字列を先頭から1文字ずつ走査し、a・e・i・o・u のいずれかに一致した場合のみ、toupper関数で大文字に変換します。

for(i=0;string[i]!='\0';i++){
    if(string[i]=='a'||string[i]=='e'||string[i]=='i'||string[i]=='o'||string[i]=='u'){
        string[i]=toupper(string[i]);
    }
}
printf("The result string with converted vowels is : ");
puts(string);

サンプルプログラム

以下は、入力された文字列の中の小文字の母音だけを大文字に変換するCプログラムです。

#include<stdio.h>
#include<ctype.h>
void main(){
    //各文字の位置を読み取るためのforループ用変数と文字列を宣言//
    int i;
    char string[40];
    //文字列の読み込み//
    printf("Enter the string : ");
    gets(string);
    //先頭から1文字ずつチェックするforループ//
    for(i=0;string[i]!='\0';i++){
        if(string[i]=='a'||string[i]=='e'||string[i]=='i'||string[i]=='o'||string[i]=='u'){
            string[i]=toupper(string[i]);
        }
    }
    printf("The result string with converted vowels is : ");
    puts(string);
}

実行結果

このプログラムを実行すると、次のような結果が出力されます。

実行例1:
Enter the string : TutoRialsPoint
The result string with converted vowels is : TUtORIAlsPOInt
実行例2:
Enter the string : c programming
The result string with converted vowels is : c programming

実行例1では、入力文字列に含まれる小文字の母音(u・o・i・a)がすべて大文字に変換されています。一方、実行例2のように小文字の母音が含まれない文字列の場合は、元の文字列がそのまま出力されます。

なお、gets関数はバッファオーバーフローの危険があるため、実用的なコードではfgetsやscanfの利用が推奨されます。

  1. 組み込み関数を使わずにPythonで大文字・小文字の文字数をカウントする方法

    はじめに 本記事では、以下の問題に対する解決策について詳しく解説します。 問題文 文字列が与えられたとき、組み込みの文字判定関数を使用せずに、その文字列に含まれる大文字と小文字の数をそれぞれカウントする必要があります。 通常、この問題はPythonに標準で用意されている islower() や isupper() を使えば簡単に解決できます。しかし今回は「これらの文字判定関数を使わない」という制約があるため、文字のASCIIコード値を活用したアプローチを採用します。 ord() 関数を使うことで、文字列内の各文字のASCIIコード値を取得できます。取得した値が小文字の範囲(97〜122)

  2. Pythonでsetを使って文字列内の母音の数をカウントするプログラム

    この記事では、ユーザーが入力した文字列に含まれる母音の数をカウントするPythonプログラムを紹介します。ポイントとなるのはPythonのset(セット)の活用です。setとは、反復可能(iterable)で可変(mutable)、かつ重複する要素を持たないという特徴をもつ、順序なしのコレクションデータ型です。 実行例 入力:str1 = pythonprogram 出力:3 アルゴリズム ステップ1:まず、文字列内の母音を数えるためのカウンター変数を用意します。 ステップ2:母音のセットを作成します。 ステップ3:与えられた文字列内のすべての文字を順番に走査します。 ステップ4:文字が