Копирование строк в C - PullRequest
0 голосов
/ 12 марта 2012

Как я могу скопировать строки в 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 Ответ

2 голосов
/ 12 марта 2012

Как насчет strdup ?Он даже выделяет целевой буфер для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...