文字配列が "ADD"で始まるかどうかを調べる必要があります。私はstrcmp()を使用することを知っていますが、最初の3文字を取得する方法はわかりません。私は本当にc-ストリングを扱うのが嫌いです。 char buffer[1024]?
Cで文字列をスライスする方法はありますか?
8
A
答えて
9
strncmp("ADD", buffer, 3)
のように、どのように文字配列のスライスを取ることができますか?
「スライス」の意味はわかりませんが、buffer
内のポインタはスライスと見なすことができます。たとえば、buffer
が"ADD"
で始まる文字列の場合、char *slice = buffer + 3
は同じ文字列で"ADD"
が削除されています。 注slice
はbuffer
の一部であり、slice
の内容を変更するとbuffer
の内容が変更されます。そして、他の方法でラウンド。
"スライス"とは、独立したコピーを意味する場合は、新しいメモリブロックを割り当て、興味のある部分をbuffer
からメモリにコピーする必要があります。これにはライブラリ関数strdup
とstrndup
が便利です。
8
使用strncmp .Assumingバッファがちょうど
strncmp (buffer,"ADD",3);
関連する問題
- 1. format()で文字列引数のスライスを取る方法はありますか?
- 2. C++で文字列を整数でソートする方法はありますか?
- 3. C#で文字列からビットを得る方法はありますか?
- 4. Cの文字列配列から文字列を作成する簡単な方法はありますか?
- 5. 複数行文字列でC#6の文字列補間を使用する方法はありますか?
- 6. C++の文字列を逆順にstrtokする方法はありますか?
- 7. C#文字列のエンコーディングをチェックする方法はありますか?
- 8. 構造体のスライスを文字列のスライスに変換する方法は?
- 9. 文字と文字列を文字列から区別する方法はありますか
- 10. ある文字列を他の文字列から '引き算'する方法はありますか?
- 11. 文字列をスペースで区切らずに文字列で印刷する方法はありますか?
- 12. クエリ文字列を配列に変換する方法はありますか?
- 13. Cで文字列をスライスしてコピーする
- 14. 文字列を2にスライスし、部分文字列を別の関数に転送する方法はありますか?
- 15. Cで文字列の定数配列にchar [n] [length + 1]をキャストする方法はありますか?
- 16. Rubyの文字列#空白はありますか?方法?
- 17. 文字列を文字列にスライス
- 18. ディレクトリ文字列の最後のスラッシュをバッチファイルで部分文字列にする方法はありますか?
- 19. Typescriptで文字列を文字列型に変換する方法はありますか?
- 20. WP7で文字列をローカライズする方法はありますか?
- 21. vb6で文字列を事前定義する方法はありますか?
- 22. インテグレーションリクエストボディマッピングテンプレートでクエリ文字列をintにキャストする方法はありますか?
- 23. NFC経由で文字列を転送する方法はありますか?
- 24. html属性で文字列を連結する方法はありますか?
- 25. WPFで文字列を二重にバインドする方法はありますか?
- 26. 文字列マクロでforループを使用する方法はありますか?
- 27. 一般的に、C++ 0xで文字列の終わりを取得する方法はありますか?
- 28. C++で文字列配列を割り当てる方法は?
- 29. 文字列内の任意の数字の文字列をチェックする良い方法はありますか?
- 30. 文字列スライスをルーンスライスに変換する方法
がどのように1は、元の文字列よりも短いオフセットと終了を指定することができ、テストするための変数でありますか? "hello" + 1サイズ3( "ell")のように。それは私が信じるスライスの意味です。幸いにもstrncmpとprintfはこれを扱うオプションを提供していますが、これを文字列として表示するのはうまくいくでしょう。 – scape
@scape「Cの文字列から部分文字列を取り出す方法」(https://stackoverflow.com/questions)を参照してください。/19555434) – kmkaplan
"strtokは通常、区切り文字を入力を「食べる」ように '\ 0'に置き換えます。明らかにいくつかの欠点がある。 – scape