私は決して変化しない文字列のconstのchar()
const std::string myString = "my string";
を持っています。
はまた、私は次の関数があります。
void myFunction(const std::string str);
私は(私はmyFunction
に各部分を渡す)charで文字列の文字を通過し、各部分に何かをしたいです。
これは私が最初に思い付いたコードです:
for (std::size_t i = 0; i < myString.length(); ++i) {
myFunction(myString.at(i));
}
が、それは私に、「文字列へのconst char型に変換することはできません」というエラーを与えました。
for (std::size_t i = 0; i < myString.length(); ++i) {
char currentChar[2] = {myString.at(i), '\0'};
myFunction(currentChar);
}
動作しますが、私はそれについて良い感じていない。だから私は、次のコードを思い付きました。
この解決策は正しいですか?それとも、それがうまくいくのか(未定義の振る舞いのようですが、私がテストするとうまくいくのは幸運です)?
また、myFunction
の渡された文字列はconstですか?
正確に 'myFunction'に渡すものを明確にしてください。あなたは文字列を渡すと言うと、 'myFunction'は文字列charをcharで調べます。しかし、残りの質問では、あなたは 'myFunction'に一つの文字を渡そうとします。 –
文字列charをcharで処理しています。 'myFunction'に渡す予定の部分文字列は何ですか? – md5i
それを明確にしました、それについて申し訳ありません! –