如何在 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
中没有找到任何函数。提前致谢。
最佳答案
怎么样strdup ?它甚至为您分配目标缓冲区。
关于c - C 中的字符串复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672619/