c - C 中的字符串复制

标签 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 中没有找到任何函数。提前致谢。

最佳答案

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

关于c - C 中的字符串复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672619/

相关文章:

python - 为什么这个从另一个字符串中删除第一次出现的字符串的函数无法正常工作?

c# - 在另一个窗口上绘图(不闪烁?)

c - 按名称对链接列表进行冒泡排序

c - OpenCl 中的结构具有大量内存地址

java - 从Java数组中获取前四名最大值

c++ - 在 C++ 头文件中将字符串值更改为大写?

string - Excel VBA 类似运算符

c - 为什么我的 CPU 突然工作速度提高了一倍?

c - 内核驱动程序接收到结构体,但它仍然为空

java - 数组作为适当的对象