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

C++で文字列からスペースを削除する方法【初心者向けサンプルコード付き】


このプログラムは、入力された文字列からスペース(空白文字)をすべて取り除きます。文字列の容量を節約したい場合や、空白を含まない整形済みデータが必要な場合などに便利な処理です。以下に、実際の入出力例とともに、具体的な実装方法をわかりやすく解説します。

入力:Hello World
出力:HelloWorld

プログラムの仕組み

文字列や文章からスペースを削除するには、まずユーザーに文字列の入力を求めます。その後、文字列を先頭から1文字ずつ走査し、スペースが存在するかどうかをチェックしていきます。

スペースが見つかった場合は、そのスペース以降にある文字をすべて1つずつ前方へずらして詰めます。これによりスペースが埋まり、文字列全体の長さも1文字分短くなります。この処理を文字列の終端まで繰り返すことで、文字列内に含まれるすべてのスペースを削除できます。

サンプルコード

以下は、C++で文字列からスペースを削除する実際のコード例です。

#include <iostream>
#include <string.h>
using namespace std;
int main() {
    char str[80] = "Hello World";
    int i = 0, len, j;
    len = strlen(str);
    for (i = 0; i < len; i++) {
        if (str[i] == ' ') {
            for (j = i; j < len; j++)
                str[j] = str[j + 1];
            len--;
        }
    }
    cout << str;
    return 0;
}

コードのポイント

strlen関数: 文字列の長さを取得するために使用しています。ヘッダーファイル「string.h」をインクルードすることで利用できます。

二重ループ構造: 外側のループで各文字をチェックし、スペースを見つけたら内側のループで後続の文字を前方にシフトします。シフト完了後に文字列長を1減算することで、論理的な文字列の終端を正しく保っています。

このアルゴリズムは計算量がO(n²)となるため、非常に長い文字列を扱う場合は、新しい文字列を作成してスペース以外の文字だけをコピーする方式の方が効率的です。用途に応じて最適な手法を選択しましょう。

  1. Javaで文字列からすべての空白を削除するプログラムの作成方法

    本記事では、Javaを使って文字列からすべての空白(ホワイトスペース)を削除する方法について解説します。文字列(String型)とは、1つ以上の文字を含み、ダブルクォート( )で囲まれたデータ型のことです。 以下に具体的な例を示します。 入力値: 入力文字列: Java programming is fun to learn. 期待される出力: 空白を置き換えた後の文字列: Javaprogrammingisfuntolearn. アルゴリズム ステップ1 - 開始 ステップ2 - String input_string と result の2つの文字列変数を宣言する ステップ3 - 値を定

  2. Pythonで特定の文字列から重複する文字を削除するプログラム

    文字列 s が与えられたとします。ここから、すでに一度出現したことのある重複文字をすべて削除する必要があります。ただし、最終的な文字列は元の文字列と同じ文字の出現順序を保たなければなりません。この問題は、順序付き辞書(OrderedDict)を使って文字の挿入順序を維持することで効率的に解決できます。辞書の値には各文字の出現回数を格納しますが、今回の目的では頻度の値そのものは重要ではありません。辞書が完成したら、キーを順番に取り出して連結するだけで、重複のない文字列が得られます。例えば、入力が s = bbabcaaccdbaabababc の場合、出力は bacd になります。アルゴリズムd