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