"let_varname _ = _ 20"という形式の文字列を受け取り、 "varname"を分離してmy name変数で新しい文字列を作成するC++関数を書いています名。私は.at()関数に、スペースにヒットしたときにwhileループを反復することを止めさせようとしています(アンダースコアは空白です。スペースがあったことを十分に明確にしたいだけでした)。しかし、文字列の終わりまで完全に止まることなく(2つのスペースを経て)行くので、それらを適切に比較していません。文字と比較しないString.at()
void store(std::string exp) {
int finalcount = 4;
char placeholder = ' ';
while (exp.at(finalcount)!=placeholder) {
finalcount++;
}
for (int i = 0; i < exp.size(); i++) {
std::cout << exp.at(i) << std::endl;
}
std::string varname = exp.substr(4, finalcount+1);
std::cout << finalcount + 1 << std::endl;
std::cout << varname << std::endl;
}
私はインデックスがtehの文字列の0-3が「L」「E」「T」と「」になることを知っているので、私は、インデックス4で開始。 print文は、読んでいたものと入力したものとを比較するだけのものでした。私はまた、私のwhileループ条件がASCIIコードで動作するために> 65 & & < 90でしたが、私も試してみましたが、それも動作しませんでした。
ご協力いただきありがとうございます。
:
はこれを試してみてください。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –
@πάνταῥεῖコピーペーストバージョンはどこですか?私はあなたのような気がします10k>ユーザーはいくつかの秘密のコピーペースト隠しを持っています。 –
Stack Overflowで私が尋ねた唯一の理由は、私が知っている限りすべてを試したことであり、私の問題はテキストで述べられています。 –