这是我的小片段,给我带来了问题:
int main(int argc, char** argv) {
char string[75] = {0};
char *pChar;
int count = 0;
printf("String: ");
fgets(string, sizeof string, stdin);
printf("Numero parole: %d\n", countWords(string, strlen(string)));
// Suddivido la stringa nelle varie parole
pChar = strtok(string, " ");
while(pChar){
if(isWord(pChar, strlen(pChar))){
count += strlen(pChar);
}
pChar = strtok(NULL, " ");
}
printf("Lettere totali: %d\n", count);
return (EXIT_SUCCESS);
}
问题是没有为计数变量分配任何值。我知道有问题,但我仍然不知道出了什么问题。
谢谢帮忙^^
PS我目前正在学习C,所以这可能是一个愚蠢的问题。
PPS 根据要求,这里是 isWord 函数:(不要介意他们用意大利语的评论)
// Controlla se è una parola
int isWord(char string[], int length){
int i = 0; // Contatore
int countAlpha = 0; // Se il carattere è alfabetico. Non vengono
// contate le parole che contengono numeri
// Inizio scorrendo tutta la stringa tranne l'ultimo carattere che è un
// terminatore di stringa
for(i; i < length - 1; i++){
// Se il carattere è alfabetico allora aumento il contatore isAlpha
if(isalpha(string[i])){
countAlpha++;
// Altrimenti il carattere non è una lettera
} else {
countAlpha = 0;
}
}
if(countAlpha == i){
return 0;
} else {
return 1;
}
}