如何在C中切割字符串?

tem*_*ame 8 c string cstring slice

我需要查找char数组是否以"ADD"开头.我知道使用strcmp(),但我不知道如何获得前三个字符.我真的很讨厌使用c-strings.我怎样才能像一个char数组一样char buffer[1024]?

kmk*_*lan 10

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

我不确定你的意思是什么"切片"但是里面的任何指针buffer都可以被认为是切片.例如,if buffer是以"ADD"then 开头char *slice = buffer + 3的字符串是与"ADD"删除的字符串相同的字符串.需要注意的是slice随后的一部分buffer和修改的内容slice将修改的内容buffer.反过来说.

如果通过"切片"表示一个独立的副本,那么你必须分配一个新的内存块并将有趣的部分复制buffer到你的内存中.该库功能齐全strdup,strndup非常方便.


fvu*_*fvu 8

使用strncmp .Assuming buffer是要测试的变量,只是

strncmp (buffer,"ADD",3);
Run Code Online (Sandbox Code Playgroud)