簡體   English   中英

C,計算字符串數組中的唯一字符串

[英]C, Count unique strings in an array of strings

使用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], " ");
                }
            }
        }
    }
  1. 首先for循環遍歷整個數組
  2. 每次迭代將標志設置為零
  3. 使用空格作為另一個標志,如果索引為空白,則意味着該單詞已被計數,請移至下一個索引
  4. 將索引與其后的每個索引進行比較,因此j = i
  5. 如果二級索引匹配第一個
  6. 如果尚未找到該詞
  7. 觸發標志
  8. 加到k,唯一字數
  9. 將該單詞的每個其余實例設置為空格,以匹配第3行

    不是將k設置為唯一字數,而是將其設置為總字數。 使用打印的標志,我能夠告訴我們該功能貫穿了整個過程,甚至到下一行

  10. 我仍然無法說出它如何使最外層for循環的每次迭代都到達第8行。

調整您的代碼,嘗試這樣的事情:

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++;
}

如果您只是在數數,就不需要銷毀重復項,但是,如果您仍然希望這樣做,我建議您使用一個空字符串而不是一個包含空格的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM