如何复制C中的字符串以便不重叠旧值?我使用strcpy()
,但它清洁dest
设置值为src
。在C中复制字符串
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
找不到任何功能。提前致谢。
请处理你的代码格式,并且作为一般规则,不要在C中命名变量'new',就好像你的代码曾经用在C++项目中一样,它会导致很多头痛。 – 2012-03-12 18:26:27
等一下,'strcpy'有什么问题?这似乎正是你应该使用的。 – jwodder 2012-03-12 18:26:35
'strncpy'应该是你正在寻找的。或者,您能否详细说明您的问题,以便我们知道您真正想要做什么?当然'dest'正在清理?! – Gandaro 2012-03-12 18:26:55