我在字符串中計算字詞出現次數。對於字符串S,我需要顯示每個單詞以及該單詞在字符串中出現的次數。在字符串中計數字詞出現
例:
string = ";! one two, tree foor one two !:;"
結果:
one: 2
two: 2
tree: 1
foor: 1
這裏是我的代碼,但它沒有返回正確的計數:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int count_word(char * mot, char * text) {
int n = 0;
char *p;
p = strstr(text, mot);
while (p != NULL) {
n++;
p = strstr(p + 1, mot);
}
return n;
}
void show_all_words(char * text) {
char * p = strtok(text, " .,;-!?");
while (p != NULL) {
printf ("%s : %d\n", p, count_word(p, text));
p = strtok(NULL, " .,;-!?");
}
}
int main(char *argv[]) {
char text[] = ";! one two, tree foor one two !:;";
show_all_words(&text);
return (EXIT_SUCCESS);
};
它的返回:
one : 1
two : 0
tree : 0
foor : 0
one : 1
two : 0
: : 0
你問C語言問題還是C++問題?它們是不同的語言,並且標籤不能互換使用。 – meagar
我修復了這個問題並刪除了C++標籤,我問了一個C問題。 – Alex