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

C++の文字列からすべての整数を抽出します


ここでは、C++で文字列からすべての整数を抽出する方法を説明します。数字と数字がない文字列を入れることができます。そこからすべての数値を抽出します。

この問題を解決するために、C++でstringstreamクラスを使用します。文字列を単語ごとに切り取り、整数型のデータに変換してみます。変換が完了すると、整数になり、値が出力されます。

Input: A string with some numbers “Hello 112 World 35 75”
Output: 112 35 75

アルゴリズム

Step 1:Take a number string
Step 2: Divide it into different words
Step 3: If a word can be converted into integer type data, then it is printed
Step 4: End

サンプルコード

#include<iostream>
#include<sstream>
using namespace std;
void getNumberFromString(string s) {
   stringstream str_strm;
   str_strm << s; //convert the string s into stringstream
   string temp_str;
   int temp_int;
   while(!str_strm.eof()) {
      str_strm >> temp_str; //take words into temp_str one by one
      if(stringstream(temp_str) >> temp_int) { //try to convert string to int
         cout << temp_int << " ";
      }
      temp_str = ""; //clear temp string
   }
}
main() {
   string my_str = "Hello 112 World 35 75";
   getNumberFromString(my_str);
}

出力

112 35 75

  1. C++を使用して文字列から特定の単語を削除する

    この記事では、特定の文字列から特定の単語を削除する問題を解決します。例- Input : str = “remove a given word ”, word = “ remove ” Output : “ a given word ” Input : str = “ god is everywhere ”, word = “ is ” Output : “ god everywhere ” 解決策を見つけるためのアプローチ たとえば、単純なアプロ

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

    括弧と整数で構成される文字列があるとします。その文字列から二分木を構築する必要があります。入力全体が二分木を表します。これは、0、1、または2組の括弧が後に続く整数を保持します。整数はルートの値を表し、括弧のペアには同じ構造の子二分木が含まれます。 したがって、入力が「4(2(3)(1))(6(5))」の場合、出力は[3,2,1,4,5,6](順序付き走査)になります これを解決するには、次の手順に従います- 関数solve()を定義します。これには、s、idx、が必要です。 =sのサイズの場合、- nullを返す num:=空の文字列 while(