-1

非常に単純な問題と思われる問題がありますが、問題に頭を悩ませているようには見えません...

私はそれを呼び出すことができる文字列を持っており"HELLOWORLD"、私が行っている他の作業から生成された番号を持っています。4

"HELL"最初の ( ) を返し、 2 番目の ( ) を維持して作業するにはどうすればよい"OWORLD"ですか?

4

2 に答える 2

4

分割したいインデックスが既にある場合、最も簡単な方法は、2 つのイテレータを取る文字列コンストラクタを使用することです。

std::string original = "HELLOWORLD";

std::size_t index = 4;
std::string::iterator it = original.begin();

std::string part1(it, it + index);
std::string part2(it + index, original.end());
于 2013-03-25T19:47:24.083 に答える
1

試しましたか:

#include <string>
...

string thing = "HELLOWORLD";

thing.substr(0, 4);    // => "HELL"

このsubstrメソッド (stringライブラリから) は、最初のインデックスから、渡された 2 番目のインデックスまで (ただし除外) の文字列を返します。

アップデート

あなたがやりたいことを正確に理解するのに苦労しています。文字列の末尾(つまり"OWORLD")を取得したい場合は、次のようにします。

thing.substr(4, thing.length())   // => "OWORLD"

これは、4 番目のインデックス (包括的) から N 番目のインデックス (排他的) に見えます。

于 2013-03-25T19:46:59.330 に答える