我正在寻找一种可移植的方法,将存储在char *
中的字符串转换为一个数组,其中每个4个字符都存储在自己的字符串中。
为澄清起见,我希望能够对字符串中的每4个字符运行一个循环。
示例:
char *somebinary = "0001011000100010"
将被拆分,以便:
somesplitbinary[0] == "0001"
somesplitbinary[1] == "0110"
somesplitbinary[2] == "0010"
somesplitbinary[3] == "0010"
谢谢:)
答案 0 :(得分:0)
我愿意
SELINUX=disabled
答案 1 :(得分:0)
buff-输出缓冲区
str-要分块的字符串
块-块的长度
将指向块开头的指针分块(如果为NULL,则将其忽略)
size_t split(char *buff, const char *str, size_t chunk, char **chunks)
{
size_t len = strlen(str);
size_t chlen;
size_t chinkc = 0;
while(len)
{
chlen = len >= chunk ? chunk : len;
memcpy(buff, str, chlen);
if(chunks)
{
*chunks++ = buff;
}
chunkc++;
buff += chlen;
*buff++ = 0;
str += chlen
len -= chlen;
}
return chunkc;
}