我的代码工作正常,只是实现另一个部分的问题。是否可以获取 token 中的所有字符串指针并将它们连接到另一个数组的一个索引中?例如,有另一个名为 *array1[32] 的数组或指针数组,它将 token 的所有“串联”存储到 array1 的索引之一(如果有意义的话)。
printf("Enter text:\n");
while((ch = getchar()) != '\n')
str[i++] = ch;
str[i] = '\0';
i = 0;
int spaces = 0;
for(int counter = 0; counter < strlen(str) + 1; counter++){
if(str[counter] == ' '){
spaces++;
}
}
cmd = strtok(str, " ");
while(n <= spaces + 1 && (act_token = strtok(NULL, " "))){
token[n] = act_token;
n++;
}
token[n] = NULL;
n = 1;
最佳答案
如果我理解你的问题,你想将所有标记复制到一个不带空格的新字符串中。如果这就是你想要的,你可以做这样的事情。首先像这样声明你的 array1:
char *array1;
然后在初始循环之后在重置 i
之前为其分配内存:
array1 = malloc(i + 1);
然后在标记化之后,您可以复制字符串:
strcpy(array1, cmd);
for (i = 0; i < spaces; i++) {
strcat(array1, token[i]);
}
printf("concat: %s\n", array1);
需要注意的一件事是验证您的标记化是否可以处理没有空格的情况。
关于将字符串指针数组组合成一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52616639/