我需要找出一个字符数组是否以“ADD”开头。我知道使用 strcmp(),但我不知道如何获取前三个字符。我真的很讨厌使用 c-strings。我怎样才能得到一个char数组的一部分,比如char buffer[1024]?
14414 次
2 回答
10
使用strncmp("ADD", buffer, 3).
我不确定您所说的“切片”是什么意思,但里面的任何指针buffer都可以被视为切片。例如,如果是一个以thenbuffer开头的字符串,则与删除后的字符串相同。需要注意的是,然后是的一部分,修改 的内容会修改 的内容。反之亦然。"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 回答