C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■89179 / 1階層)  stringクラス文字列を文字数で区切りたい
□投稿者/ 魔界の仮面弁士 (1921回)-(2018/11/05(Mon) 11:55:29)
No89171 (ビキナー さん) に返信
> 例(3ビットで区切りたい):
> string str = "123456789012";

『3 ビット』で区切るの意味にもよりますが、
"123……" という文字列を 3bit で区切ると
→ 16進数では: 31,32,33,……
→ 2 進数では: 00110001,00110010,00110011,……
→ 3 bit 区切: 001,100,010,011,001,000,110,011,……
になりますね。


> stringクラスで宣言した文字列を、文字数で区切る良い方法はないでしょうか?

「3 ビット」なのか「3 文字」なのか「3 バイト」なのかで変わってきますが、
> str2[0] = "123"
> str2[1] = "456"
という結果を得たいのであれば、Jitta さんや Azulean さんの回答を参考に
 str2[0] = str.substr(0u, 3u);
 str2[1] = str.substr(3u, 3u);
 str2[2] = str.substr(6u, 3u);
 str2[3] = str.substr(9u, 3u);
になるように切り出していけると思います。
ただし、マルチバイト文字は含まれないという前提で。


using namespace std;

size_t chunkSize = 3u;

size_t const limitIndex = 10u;
string str = "123456789012";
string str2[limitIndex];

size_t maxIndex = (size_t)ceil(str.length() / (double)chunkSize);
if (limitIndex < maxIndex) { maxIndex = limitIndex; }
for (size_t i = 0u; i < maxIndex; i++) { str2[i] = str.substr(i * chunkSize, chunkSize); }
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←stringクラス文字列を文字数で区切りたい /ビキナー 返信無し
 
上記関連ツリー

stringクラス文字列を文字数で区切りたい / ビキナー (18/11/04(Sun) 14:22) #89171
Re[1]: stringクラス文字列を文字数で区切りたい / Jitta (18/11/04(Sun) 20:43) #89173
│└ Re[2]: stringクラス文字列を文字数で区切りたい / ビキナー (18/11/04(Sun) 21:10) #89174
│  ├ Re[3]: stringクラス文字列を文字数で区切りたい / Azulean (18/11/04(Sun) 22:26) #89175
│  ├ Re[3]: stringクラス文字列を文字数で区切りたい / にゃるら (18/11/05(Mon) 12:37) #89181
│  └ Re[3]: stringクラス文字列を文字数で区切りたい / Jitta (18/11/05(Mon) 13:50) #89185
stringクラス文字列を文字数で区切りたい / 魔界の仮面弁士 (18/11/05(Mon) 11:55) #89179 ←Now

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信