字符串在C中复制

时间:2012-03-12 18:23:31

标签: c arrays string

如何在C中复制字符串以便不与旧值重叠?我使用了strcpy(),但它清除dest以设置src的值。

char* foo =  "  This    is my     string    \0";
char* new = malloc(strlen(str) + 1);
char* token;
int size = 0;

token = strtok(foo, " \t");
while( NULL != token ) 
{   
    int i; 
    for(i = 0; token[i] != '\0'; i++)  
    {
        new[size++] = token[i];
    }

    new[size++] = ' ';
    token = strtok(NULL, " \t");
}
new[size] = '\0';

我想要这个代码块的替代方案:

int i; 
for(i = 0; token[i] != '\0'; i++)  
{
    new[size++] = token[i];
}

new[size++] = ' ';

C中有一个本地方法可以做到这一点吗?我在string.h中找不到任何功能。提前谢谢。

1 个答案:

答案 0 :(得分:2)

strdup怎么样?它甚至为您分配目标缓冲区。