8

char配列が「ADD」で始まるかどうかを確認する必要があります。strcmp()を使用することは知っていますが、最初の3文字を取得する方法がわかりません。私はc-stringsでの作業が本当に嫌いです。次のようなchar配列のスライスを取得するにはどうすればよいですか?char buffer[1024]?

4

2 に答える 2

10

を使用しstrncmp("ADD", buffer, 3)ます。

「スライス」の意味はわかりませんが、内部のポインタbufferはスライスと見なすことができます。たとえば、ifbufferで始まる文字列は、削除され"ADD"char *slice = buffer + 3同じ文字列です。の一部であり、のコンテンツを変更すると、のコンテンツが変更されることに注意してください。そしてその逆です。"ADD"slicebufferslicebuffer

「スライス」が独立したコピーを意味する場合は、新しいメモリブロックを割り当てて、関心のある部分をメモリにコピーする必要がありbufferます。ライブラリは機能strdupし、strndupこれに便利です。

于 2012-12-02T22:32:20.297 に答える
8

strncmpを使用します。バッファがテストする変数であると仮定すると、

strncmp (buffer,"ADD",3);
于 2012-12-02T22:32:51.390 に答える