使用C,我有一个字符串数组,有些是重复的。我试图计算唯一字符串的数量。代码:
for(i=0; i<size; i++){
flag=0;
if(strcmp(" ", tArr[i])!=0){
for(j=i; j<size; j++){
if(strcmp(tArr[i], tArr[j])==0){
if (flag<1){
flag=1;
k++;
}
strcpy(tArr[j], " ");
}
}
}
}
将该单词的每个剩余实例设置为空格,以匹配第3行
不是将k设置为唯一字数,而是将其设置为总字数。使用打印的标志我能够告诉该功能一直通过,甚至到线后
我仍然无法告诉它如何在最外面的for循环的每次迭代中进行第8行。
答案 0 :(得分:3)
调整代码,尝试以下方法:
for (i = 0; i < size; i++) {
for (j = i + 1; j < size; j++)
if (strcmp(tArr[i], tArr[j]) == 0)
break;
if (j == size)
unique_count++;
}
如果您只是计算,则不需要销毁重复项,但是如果您仍然希望这样做,我建议使用空字符串而不是包含空格的字符串。