如何从一个字符串一次读取两个字符并复制到另一个字符串

时间:2014-11-23 22:09:01

标签: c string char

我试图从一个字符串中读取两个连续的字符,然后将两个字符传递给另一个字符串。代码如下,但它给我分段错误!我做错了什么?

char *st = malloc(16*sizeof(char));
char *string = "purpleredblue";
int i;
int x=0;

while(x<=16)
{
    for(i=x;i<=x+2;i++)
    {
        *st++=*string++;  //copies content from string to st
    }
    x+=2;
}

printf("%s\n",st);

1 个答案:

答案 0 :(得分:0)

您的代码完全错误。这可能会有所帮助:

char *buffer = (char*)malloc(16 * sizeof(char));
char *source = "purpleredblue";

char *dst = buffer;
char *src = source;
char *end = source + strlen(source);

while (src <= end)
{
    strncpy(dst, src, 2);

    dst += 2;
    src += 2;
}

printf("%s", buffer);