char配列が「ADD」で始まるかどうかを確認する必要があります。strcmp()を使用することは知っていますが、最初の3文字を取得する方法がわかりません。私はc-stringsでの作業が本当に嫌いです。次のようなchar配列のスライスを取得するにはどうすればよいですか?char buffer[1024]?
質問する
14414 次
2 に答える
10
を使用しstrncmp("ADD", buffer, 3)
ます。
「スライス」の意味はわかりませんが、内部のポインタbuffer
はスライスと見なすことができます。たとえば、ifbuffer
で始まる文字列は、削除され"ADD"
たchar *slice = buffer + 3
同じ文字列です。の一部であり、のコンテンツを変更すると、のコンテンツが変更されることに注意してください。そしてその逆です。"ADD"
slice
buffer
slice
buffer
「スライス」が独立したコピーを意味する場合は、新しいメモリブロックを割り当てて、関心のある部分をメモリにコピーする必要がありbuffer
ます。ライブラリは機能strdup
し、strndup
これに便利です。
于 2012-12-02T22:32:20.297 に答える
8
strncmpを使用します。バッファがテストする変数であると仮定すると、
strncmp (buffer,"ADD",3);
于 2012-12-02T22:32:51.390 に答える