C++プログラムでポインタを使用して文字列内の母音をカウントする方法
ポインタを使って文字列内の母音の数を求めるには、文字列・母音・そしてポインタと文字列を組み合わせて使う方法について理解しておく必要があります。
文字列とは文字の配列です。母音とは集合 {a, e, i, o, u} に含まれる文字のことです。ポインタとは、変数が格納されているメモリ上の場所(アドレス)を保持する変数のことです。
基本的な考え方
文字列内の母音の数を求める手順は以下の通りです。
- 文字列を先頭から順に走査(トラバース)します。
- 各文字を母音(a, e, i, o, u)と比較します。
- 一致した場合はカウンタを1増やし、一致しなければそのまま次へ進みます。
なお、後述のコードではすべて小文字の文字列を前提としています。大文字が含まれる可能性がある場合は、tolower() 関数を使って文字を小文字に変換してから比較するとよいでしょう。
サンプルコード
#include <iostream>
using namespace std;
int main() {
char str[] = "i love tutorials point";
char *prt ;
prt = str;
int count = 0;
for(prt;(*prt) != '\0'; prt++) {
if (*prt == 'a' || *prt == 'e' || *prt == 'i'|| *prt == 'o' || *prt == 'u') {
count++;
}
}
cout << "Vowels in the string: " << count;
return 0;
}実行結果
Vowels in the string: 9
コードの解説
char *prt = str;により、ポインタprtは文字列strの先頭アドレスを指します。- forループでは、ポインタが指す文字が終端文字
'\0'になるまで繰り返します。'\0'はCスタイル文字列の終わりを示す特殊な文字です。 - 各反復処理で
*prt(ポインタが現在指している文字)を5つの母音と比較し、一致すればcountをインクリメントします。 prt++によってポインタを1文字分進め、次の文字へ移動します。
この例では「i love tutorials point」という文字列に母音が9個含まれているため、出力は「Vowels in the string: 9」となります。
-
セットを使って文字列内の母音の数をカウントするPythonプログラム
本記事では、Pythonを使って文字列内に含まれる母音の数をカウントする方法について解説します。セット(set)を活用した効率的な実装を中心に、初心者の方にもわかりやすく説明していきます。 問題の概要 問題文:任意の文字列が与えられたとき、その文字列に含まれる母音の数をセットを使って数えます。 基本的なアプローチとしては、文字列全体を先頭から順に走査し、各文字が母音であるかどうかを判定します。母音であればカウントを1ずつ増やしていき、最終的な合計を出力します。 実装例 def vowel_count(str_): count = 0 # 母音をセットとして定義 vowe
-
Pythonでsetを使って文字列内の母音の数をカウントするプログラム
この記事では、ユーザーが入力した文字列に含まれる母音の数をカウントするPythonプログラムを紹介します。ポイントとなるのはPythonのset(セット)の活用です。setとは、反復可能(iterable)で可変(mutable)、かつ重複する要素を持たないという特徴をもつ、順序なしのコレクションデータ型です。 実行例 入力:str1 = pythonprogram 出力:3 アルゴリズム ステップ1:まず、文字列内の母音を数えるためのカウンター変数を用意します。 ステップ2:母音のセットを作成します。 ステップ3:与えられた文字列内のすべての文字を順番に走査します。 ステップ4:文字が