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

C言語の文字列を使って母音・数字・スペース・子音をカウントするプログラム

文字の配列(または文字の集まり)は文字列と呼ばれます。C言語では、文字列はヌル文字 '\0' で終わる char 型の配列として扱われます。

文字列の宣言

文字列は以下のように宣言します。

char stringname [size];

例えば、char a[50]; と宣言すると、最大50文字まで格納できる文字列が作成されます。

文字列の初期化

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

  • 1文字ずつ(単一文字定数)で初期化する場合:
char a[10] = { 'H', 'e', 'l', 'l', 'o', '\0' };
  • 文字列定数で初期化する場合:
char a[10] = "Hello";

文字列定数で初期化した場合は、末尾のヌル文字 '\0' が自動的に付加されます。

文字列へのアクセス

文字列の入出力には、制御文字列 "%s" を使用します。この指定子は、ヌル文字 '\0' に到達するまで文字列を読み書きします。

各文字の判定ロジック

母音の数を数えるロジック:

if(string[i]=='a'||string[i]=='e'||string[i]=='i'||
    string[i]=='o'||string[i]=='u')//文字が母音かどうか判定
    vowel=vowel+1;

数字の数を数えるロジック:

if(string[i]=='0'||string[i]=='1'||string[i]=='2'||
string[i]=='3'||string[i]=='4'||string[i]=='5'||
string[i]=='6'||string[i]=='7'||string[i]=='8'||string[i]=='9')
digit=digit+1;

スペースの数を数えるロジック:

if(string[i]==' ')
space=space+1;

上記のいずれにも該当しない残りの文字は、すべて子音としてカウントされます。

サンプルプログラム

以下は、文字列の概念を使用して母音・数字・スペース・子音をカウントするCプログラムです。

#include<stdio.h>
int main(){
    char string[50];
    int i,vowel=0,digit=0,space=0,consonant=0;
    printf("enter any string includes all types of characters:\n");
    gets(string);
    for(i=0;string[i]!='\0';i++){
        if(string[i]=='a'||string[i]=='e'||string[i]=='i'||
            string[i]=='o'||string[i]=='u')//文字が母音かどうか判定
            vowel=vowel+1;
        else if(string[i]=='0'||string[i]=='1'||string[i]=='2'||
            string[i]=='3'||string[i]=='4'||string[i]=='5'||
            string[i]=='6'||string[i]=='7'||string[i]=='8'||string[i]=='9')
            digit=digit+1;
        else if(string[i]==' ')
            space=space+1;
        else
            consonant=consonant+1;
    }
    printf("vowel=%d\ndigit=%d\nspace=%d\nconsonant=%d\n",vowel,digit,space,consonant);
    return 0;
}

実行結果

このプログラムの実行結果は以下のとおりです。

enter any string includes all types of characters:
Tutorials Point 1234 C programming 2020
vowel=9
digit=8
space=5
consonant=17

このように、for文で文字列を先頭から1文字ずつ走査し、条件分岐によって文字の種類を判定することで、母音・数字・スペース・子音の個数をそれぞれ求めることができます。なお、入力には gets() 関数を使用していますが、バッファオーバーフローの危険があるため、実際の開発では fgets() の使用が推奨されます。

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

    本記事では、Pythonを使って文字列内に含まれる母音の数をカウントする方法について解説します。セット(set)を活用した効率的な実装を中心に、初心者の方にもわかりやすく説明していきます。 問題の概要 問題文:任意の文字列が与えられたとき、その文字列に含まれる母音の数をセットを使って数えます。 基本的なアプローチとしては、文字列全体を先頭から順に走査し、各文字が母音であるかどうかを判定します。母音であればカウントを1ずつ増やしていき、最終的な合計を出力します。 実装例 def vowel_count(str_): count = 0 # 母音をセットとして定義 vowe

  2. Pythonで文字列内の母音の数を数える方法をわかりやすく解説

    Pythonで文字列内の母音の数を数える基本手順Pythonでは、シンプルなループ処理を使うことで、文字列に含まれる母音(a、e、i、o、u)の数を簡単に数えることができます。ここでは、初心者にもわかりやすいように、基本的な実装手順を順を追って解説します。ステップ1:母音をまとめた文字列を用意するまず、すべての母音を格納した文字列オブジェクトを宣言します。>>> vowels = aeiouステップ2:カウント用の変数を初期化する次に、母音の出現回数を記録するための変数を0で初期化します。>>> count = 0ステップ3:文字列を走査して母音を判定する対