非常に単純な問題と思われる問題がありますが、問題に頭を悩ませているようには見えません...
私はそれを呼び出すことができる文字列を持っており"HELLOWORLD"
、私が行っている他の作業から生成された番号を持っています。4
"HELL"
最初の ( ) を返し、 2 番目の ( ) を維持して作業するにはどうすればよい"OWORLD"
ですか?
分割したいインデックスが既にある場合、最も簡単な方法は、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());
試しましたか:
#include <string>
...
string thing = "HELLOWORLD";
thing.substr(0, 4); // => "HELL"
このsubstr
メソッド (string
ライブラリから) は、最初のインデックスから、渡された 2 番目のインデックスまで (ただし除外) の文字列を返します。
アップデート
あなたがやりたいことを正確に理解するのに苦労しています。文字列の末尾(つまり"OWORLD"
)を取得したい場合は、次のようにします。
thing.substr(4, thing.length()) // => "OWORLD"
これは、4 番目のインデックス (包括的) から N 番目のインデックス (排他的) に見えます。