将char *转换为4个字符串

时间:2019-05-10 20:25:21

标签: c string

我正在寻找一种可移植的方法,将存储在char *中的字符串转换为一个数组,其中每个4个字符都存储在自己的字符串中。

为澄清起见,我希望能够对字符串中的每4个字符运行一个循环。

示例:

char *somebinary = "0001011000100010"

将被拆分,以便:

somesplitbinary[0] == "0001"
somesplitbinary[1] == "0110"
somesplitbinary[2] == "0010"
somesplitbinary[3] == "0010"

谢谢:)

2 个答案:

答案 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;
    }