strtok

    1

    3答えて

    strtok_rで完全に処理されずに文字ptrを削除しようとすると、スタックトレースエラーが発生します。 strtok_r funcで文字列分離処理全体を完了することなく、通常の方法でstrtok_r char ptrを解放/削除することはできません。 誰も私のチャットptrを解放する方法を教えてもらえますか?その処理中はstrtok_rでしょうか? char *data = new char[t

    4

    2答えて

    私は自分のコードの "意味"部分を抽出しました(また、単純化するためにいくつかの行を置き換えています)。 私は2つのダイナミックポインタを持っています.1つは現在の行(ファイルから抽出)で、もう1つは現在のトークンです。 int main(void) { int n = 455; char *tok2, *freetok2; char *line, *freeline

    2

    3答えて

    私は文章をトークン化してスタックに置いて、各トークンをポップバックして内容を印刷しています。最初のトークンを印刷した後に空白行が表示される以外は、すべてが正常に動作します。それは私が%sを印刷しているときにこれを行うように見えるだけですが、何か他のものを使用するとその情報はガーベッジですが、空白行は表示されません。私はすでに小さな関数を試して、fgetsがつかむ改行文字を削除するようにしました。ど

    7

    2答えて

    次のコードは、64ビットと32ビットで動作が異なり、コードの移植に問題があります。後 char * tmp = "How are you?"; printf("size of char * = %ld and size of strtok return val = %ld \n",sizeof(char *),sizeof(strtok(tmp," "))); が出力されます: 32 bit

    12

    3答えて

    私はstrtokが入力引数を変更することを理解していますが、この場合、入力文字列を最初のトークンのみに縮小しています。なぜこれが起こっているのですか?それを修正するために何ができますか? #include <string.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv[]) { cha

    1

    2答えて

    私のシェルプロジェクトは進行中ですが、私の最新のスピードバンプはユーザーの入力を導入しています。私は入力文字列をトークン化しようとしていますが、最初のトークンの後にstrtokはNULLを返すだけです。しかし、プログラムで文字列をハード書き込みすると、すべてが問題なく動作します。 strtokが(最初の文字列ではなく)文字列全体をトークン化するように、ユーザー入力をどのように扱うことができますか?

    2

    2答えて

    私は並行して3つの値を解析していますが、それらは特定の区切り文字で区切られています。 token1 = strtok_s(str1, separator, &nextToken1); token2 = strtok_s(str2, separator, &nextToken2); token3 = strtok_s(str3, separator, &nextToken3); while

    0

    2答えて

    私はvc2010を使用していますが、次のようにファイルの内容を構造体に読み込もうとしていて、実行時エラーが発生します。 char buf[100]; char *token = NULL; while(fgets (buf , 100 , rd) != NULL) { token = strtok(buf,", "); test_st.fp.chunk_offset =

    0

    3答えて

    このコードを修正するのを手伝ってください。私はstrtok関数で今失われています。私はメッセージを取得する「(A if (started && ended) { char *p = inData; char *tokens[50]; int i = 0; while (i < 50) { tokens[i] = strtok_r(p,","

    4

    2答えて

    私はstrtokを使っていて、やや混乱しています。 私は多くの文字列を保持する配列を持っており、文字列を一時配列にトークン化したいと思います。 strtokを実行すると、一時配列に最初のトークンが格納されていましたが、元の配列の値も変更されました。だから私はかなり混乱しています。出力iは、コマンドで元の値を保持するにはどうすればよい command[0] = #Draw A Ring comma