c中指向字符串的指针数组中的字符数组

时间:2014-04-15 18:25:57

标签: c arrays string pointers

我有一个来自用户的行输入,我存储在一个字符input数组中。我将字符串input复制到另一个数组words,并使用带有空格分隔符的strtok将单个单词存储到指向字符串astArray[]的指针数组中。现在,单个单词存储在*astArray指向的内存位置和*token指向的单词的单个字符中。

在我修改了需要对单词进行的操作之后,我想用input中存储的字符串重新构建char astArray数组。我想将所有字符串复制到char input数组中,它们之间有空格,最后是null。我该怎么办?我试过strcpy,但我得到的字符之间没有空格。

已分配内存。

* token
token = strtok(words, " ");
loop
strcpy(astArray[i], token);

1 个答案:

答案 0 :(得分:0)

char *astArray[] = {"The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"};
char input[128];
int wc = 9;

char *out = input;
int i;
for(i=0;i<wc;++i){
    char *p = astArray[i];
    while(*p){
        *out++=*p++;
    }
    if(i<wc-1){
        *out++ = ' ';
    }
}
*out = '\0';
printf("%s\n", input);
相关问题