ここから本文です

c++での、文字の分割について

mii********さん

2013/2/223:17:54

c++での、文字の分割について

以下のような文字列が存在します。

std::string = "あいうえお□□□□□かき□□□くけこ□さしすせそ□□□□"

それを、□のが出現し、その次に□以外が存在した箇所で
区切り、以下のように分割したいです。

・あいうえお□□□□□
・かき□□□
・くけこ□
・さしすせそ□□□□

文字列から□を探すにはstrstr()等で出来るのかな?と思ったのですが、
その次の□以外を探して分割して…という処理が分かりません。

どのように実装すれば実現できるのか、
教えて戴けるととても助かります。

よろしくお願いいたします。

閲覧数:
226
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

hid********さん

編集あり2013/2/301:21:02

#include <iostream>
#include <string>
int main( void)
{
std::string str ="あいうえお□□□□□かき□□□くけこ□さしすせそ□□□□";
int n = 0, k = 0;
while ( k != std::string::npos ){
k = str.find_first_not_of( "□", str.find ( "□", n));
std::cout << str.substr(n, k - n) << "\n";
n = k;
}
return 0;
}

先頭から □ をfindし find_first_not_ofまでを
substrでちょん切るようにしてみました。

質問した人からのコメント

2013/2/5 19:12:32

ご回答いただきありがとうございます!!
C言語は少し触っていたのですが、C++を触り始めてまだ期間が短く、
.find_first_not_of()のような便利な機能があることを知りませんでした…

教えて戴いたお陰で、無事実装ができました。
ありがとうございました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる