【发布时间】:2015-04-06 06:00:58
【问题描述】:
我正在尝试编写一个程序,它遍历一个字符数组(其中包含一个句子),并将该句子中的单词分配给另一个数组,跳过空格(这是我们知道单独单词的方式),然后打印这些单词。
比如说我的字符数组是:
{'t','h','e',' ','f','o','x',' ','r','u','n','s','\0',}
我希望我的函数将单词分配给一个数组,将其命名为words,一次一个,跳过空格,然后逐个打印单词。
我试过了:
for (i = 0, x = 0; a[i] != '\0'; i++, x++){
if (a[i] != ' '){
words[x] = a[i];
}
else{
words[x] = '\0';
printf("%s\n", words);
x=0;
i++;
continue;
}
}
printf("%s\n", words);
但是当我运行它时,它只打印出s
【问题讨论】:
-
您在哪里定义和设置 temp_var?因为 temp_var 是您正在打印的内容,并且未在您正在运行的代码中设置。
-
@Allaboutthatbase2 已修复,变量名不正确
-
您有一个未使用的索引
j。您正在使用索引x,但没有什么可以改变它。转码问题? -
我添加了一个工作示例。您需要为单词添加额外的下标,并使其成为一个多维数组。这是一种方法。或者您需要使用 malloc 和指针的更复杂的解决方案。