8

我需要找出一个字符数组是否以“ADD”开头。我知道使用 strcmp(),但我不知道如何获取前三个字符。我真的很讨厌使用 c-strings。我怎样才能得到一个char数组的一部分,比如char buffer[1024]?

4

2 回答 2

10

使用strncmp("ADD", buffer, 3).

我不确定您所说的“切片”是什么意思,但里面的任何指针buffer都可以被视为切片。例如,如果是一个以thenbuffer开头的字符串,则与删除后的字符串相同。需要注意的是,然后是的一部分,修改 的内容会修改 的内容。反之亦然。"ADD"char *slice = buffer + 3"ADD"slicebufferslicebuffer

如果“切片”是指独立副本,那么您必须分配一个新的内存块并将感兴趣的部分复制buffer到您的内存中。库函数strdupstrndup为此很方便。

于 2012-12-02T22:32:20.297 回答
8

使用strncmp 。假设缓冲区是要测试的变量,只是

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