私の割り当てのためにC++でコードをプログラムしようとしています。アレイに余分なデータが格納されているのはなぜですか?
メインと関数のデータを受け入れる必要がある部分の1つは、メインで送信した配列の最初の部分を取得して関数の配列に入れなければならないことです。
for (int i = 0; i <= strlen(main) && exit == 0; i++){
if (main[i] != ';' || main[i] != '\0'){
keyword[i] = data[i];
if(main[i] == ';' || main[i] == '\0')
exit = 1;
}
この
は、指定された配列内のコードであるmain = "Hello World;Yes;No;Okay;Good Bye",
だから私は私の配列のHello World
がkeyword
と呼ばれることを保存したいですが起こると私は私が後に余分なデータを参照して、キーワード文字列をprintfの後、問題が何でありますか単語Hello World
ここでは、私はprintfの
Your keyword-----> 'Hello World;? ' Actual keyword---> 'Hello World'
私のロジック使用上の問題はありますか?
おかげ
私は、残りのコードを確認する必要がありますが、私の推測では、 'キーワード'は 'char *'(例えば 'std :: string'ではなく)です。この場合、for-loopが終了したときに、 'keyword'の最後に' '\ 0''を1つ追加する必要があります。 – jogojapan
私はあなたの質問を本当に理解しませんでしたが、文字 ';'に遭遇すると、breakキーワードを使ってforループを終了することができます。キーワードに 'hello world'が含まれています – Pramod
@Pramod break;私の割り当てで許可されていないので、ループを中断するためにexit変数を使用しています。 – Ali