如何複製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