ネットワークデータのペイロードを「改行」または「改行」文字(10進数、16進数0x0A)で分割する必要がありました。 私はいくつかの問題が発生したstrtok()関数を使用しようとしました 私は "新しい行"文字でconst char文字列を作りたいと思ったとき。strtok()デリミタとしてconst char *に見えない文字
プロト:これはキャストせずにint型からポインタをすることについて警告しました
`const char delim[] = 10;`
;:
`strtok(char * StringToSplit, const char * Delimiters)`
これは無効なイニシャライザを作りましたstrtokで使用される場合 Allthough printf("Delim: %x", delim)
)は(DELIM(は0xa) アプリケーションがクラッシュの正しい値を示しました。
`const char * delim = 10;`
警告またはエラーのprintfは( "DELIM:X%"、DELIM)が(正しい値 しかしはstrtokを与えた)(ただし、私は期待通りに)動作しませんでした。
`char delim = 10;` `(ofc strtok(..., &delim))`
これは、仕事をするように見えたが、私はまだのconst char型のPTRは()関数をstrtokはと予想された以外のconst char型のPTRを渡すことについての警告を受けました。
`char delim[] = "#";` `delim[0] = 10;`
最後に、これは警告なしに動作するようです。
`char tmp[] = "#";` `tmp[0] = 10;` `const char *delim = tmp;`
質問はstrtok()関数に、このような非可視文字を渡すために最も簡単かつエレガントな方法であるもの、ありますか? 私には、これはちょうどkludgedコードですように感じる。