LoginSignup
0
1

C++ 文字列を区切る

Last updated at Posted at 2024-02-02

初めに

これで二つ目の記事となります。TETTSUNです。
この記事は、ライブラリ紹介となっています。

ライブラリはgithubに公開しています。以下がそのリンクです。
Click on this.

このリンクから、Libraries/c++/Split関数を見つけて、ヘッダファイルとcppファイルを入れてください。

簡単に紹介

このc++ライブラリは、特定の文字列を指定した文字で区切り、それをリスト(vector)に入れるというものです。

たとえば、"Hello, my name is Kenta."の文字列を' 'で区切ると、リストの中身は、

  • "Hello,"
  • "my"
  • "name"
  • "is"
  • "Kenta."

となります。文字列を' 'で分けていることが分かるでしょうか?

文字列を区切るためには、Split()を呼び出します。

使い方

文字列を区切るためには、Split.hをインクルードし、Split()を実行しましょう。

・main.cpp

#include <iostream>
#include <vector>
#include "Split.h"

using namespace std;

int main() {
#include <iostream>
#include <vector>
#include "Split.h"

using namespace std;

int main() {
  string str = "Hello, that is the real person. That's so cool and beautiful!";
  vector<string> strArray;

  strArray = Split(str, ' '); //これが区切るための関数。
  for(int i = 0; i < strArray.size(); i++) cout << strArray[i] << endl;
  
  return 0;
}

以上のコードを実行すると、出力は、

Hello,
that
is
the
real
person.
That's
so
cool
and
beautiful!

となります。strArrayリストに、区切られた文字列たちが格納されて、それが出力されています。

では、関数の詳しい使い方を説明します。

まず、Split()には三つの引数があります。

  • 第一引数(const std::string str&)・・・区切られる文字列を格納。

  • 第二引数(char splitChar)・・・区切る文字。

上記のサンプルコードだと、str' 'で区切り、strArrayに、それらを格納するという形になります。

関数の戻り値を、リストに代入する形になります。1

なお、区切る文字(このサンプルコードだと' ')は、区切られた文字列には含まれずに無視されます。2

最後に

正直、文字列を区切る方法はほかにもたくさんあるので、わざわざ利便性の低いこのライブラリを使う必要はないかなと思います。

あくまでもこのライブラリは趣味程度の気持ちで作ったものです(笑)

  1. なお、もともとリストに何かしらの要素が入っていた場合、それらはすべてリセットされ、区切られた文字が入ってくることになります。

  2. もし区切り文字が複数並んでいた場合、それらに関してもすべて無視されます。

0
1
12

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1