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

C++で文字列から母音を削除する方法を解説

本記事では、C++を使って入力された文字列から母音(a、e、i、u、o)を削除する方法を解説します。基本的な考え方は、新しい文字列を用意し、元の文字列を1文字ずつ走査しながら処理を進めるというものです。母音が見つかった場合はその文字を新しい文字列に含めず、母音以外の文字であれば新しい文字列に追加していきます。文字列の走査が完了したら、最後に新しい文字列を元の文字列にコピーします。

アルゴリズム

処理の手順は以下の通りです。

START
    Step-1: 文字列を入力する
    Step-2: 母音が含まれているか判定し、見つかった場合はTRUEを返す
    Step-3: 母音以外の文字を別の配列にコピーする
    Step-4: カウンタをインクリメントする
    Step-5: 結果を出力する
END

上記のアルゴリズムに基づいて、C++で実装したコードが以下の通りです。

サンプルコード

#include <iostream>
#include <string.h>
#include <conio.h>
#include <cstring>
using namespace std;
int vowelChk(char);
int main(){
    char s[50], t[50];
    int c, d = 0;
    cout<<"Enter a string to delete vowels\n";
    cin>>s;
    for(c = 0; s[c] != '\0'; c++) {
        // 母音以外の文字かどうかを判定
        if(vowelChk(s[c]) == 0){
            t[d] = s[c];
            d++;
        }
    }
    t[d] = '\0';
    strcpy(s, t);
    cout<<"String after delete vowels:"<<s;
    return 0;
}
int vowelChk(char ch){
    if (ch == 'a' || ch == 'A' || ch == 'e' || ch == 'E' || ch == 'i' || ch == 'I' || ch =='o' || ch=='O' || ch == 'u' || ch == 'U')
        return 1;
    else
        return 0;
}

このプログラムの仕組みを簡単に説明します。まず、入力用の文字列配列 s と、結果を格納するための配列 t を用意します。main 関数内の for ループで文字列を先頭から1文字ずつ確認し、補助関数 vowelChk を呼び出してその文字が母音かどうかを判定します。大文字・小文字の両方の母音(a、A、e、E、i、I、o、O、u、U)に対応している点がポイントです。母音でない場合は配列 t に文字をコピーし、ループ終了後に終端文字 \0 を追加してから、strcpy 関数で元の文字列 s に結果を書き戻します。

例えば、入力文字列が「ajaykumar」の場合、母音がすべて取り除かれた結果として「jykmr」が出力されます。このようにして、母音を含まない文字列を最終的に得ることができます。

実行結果

Enter a string to delete vowels
ajaykumar
String after delete vowels:jykmr

なお、このサンプルコードでは cin を使用しているため、スペースを含む文字列は正しく入力できない点に注意してください。スペースを含む文字列を扱いたい場合は、cin.getline() や std::getline() を使用する方法があります。また、C++では std::string と std::remove_if を組み合わせることで、より簡潔に同じ処理を実現することも可能です。

  1. AndroidでTextViewの文字列から母音をすべて削除する方法を解説

    AndroidアプリでTextViewに表示する文字列から母音を除去する手順 この記事では、Androidアプリにおいて、EditTextに入力された文字列から母音(A・E・I・O・U)をすべて取り除き、結果をTextViewに表示する方法を実例とともに解説します。正規表現を使ったシンプルな実装なので、初心者の方でもすぐに試せる内容です。 ステップ1:新規プロジェクトを作成する Android Studioを起動し、「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力してプロジェクトのセットアップを完了させてください。 ステップ2:レイア

  2. C++で文字列から二分木を構築する方法

    括弧と整数から構成される文字列が与えられたとき、その文字列から二分木を構築する問題を考えてみましょう。入力文字列全体が一つの二分木を表しており、整数の後に0個、1個、または2組の括弧が続く形式になっています。整数はルート(根)ノードの値を表し、各括弧のペアは同じ構造を持つ子の部分木を含んでいます。問題の例例えば、入力が 4(2(3)(1))(6(5)) のような文字列だった場合、出力は [3,2,1,4,5,6](中順走査・inorder traversal の結果)となります。解決アプローチこの問題を解くために、以下の手順に従います。再帰関数 solve() を定義します。引数として文字列