【发布时间】:2015-11-16 11:06:34
【问题描述】:
如何分隔和比较句子中的单词,如下所示?例如,我想将“ipsum is that it has ipsum”分开,这句话中有两个相同的词(“ipsum”)。我正在尝试编写后续代码,但它不起作用,因为它在数组 iarr 上失败。
int main(void) {
int i, j, s, si;
char* iarr, arr[] = {
"lorem ipsum dolor",
"sit amet",
"ipsum is that it has ipsum"
};
s = sizeof(arr)/sizeof(char*);
for(i=0; i<s; i++){
iarr = strtok(arr[i]," ");
si = sizeof(iarr)/sizeof(char*);
for(j=0; j<si; j++){
printf("%s\n",iarr[j]);
}
}
return 0;
}
【问题讨论】:
-
您是否尝试将句子拆分为不同的单词,然后比较它们以找到相同的单词?究竟是什么错误?
-
iarr是char*所以si = sizeof(iarr)/sizeof(char*);不是你想要的。你必须多次挂墙strtok,直到你得到NULL -
编译器对“sit amet”说“char数组初始化器中的多余元素”,但它是arr对象的元素。
标签: c arrays string-comparison