gpt4 book ai didi

c - 未分配值

转载 作者:行者123 更新时间:2023-11-30 15:57:05 24 4
gpt4 key购买 nike

这是我的小片段,给我带来了问题:

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);

}

问题是没有为 count 变量分配任何值。我知道出了问题,但我仍然不知道出了什么问题。

感谢您的帮助^^

P.S.我目前正在学习 C,所以这可能是一个愚蠢的问题。

P.P.S。按照要求,这里是 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;

}

}

最佳答案

如果 count 没有增加,那么这是因为以下原因之一:

a) strlen(pChar); 返回 0

b) if(isWord(pChar, strlen(pChar))) 永远不会为真

c) while(pChar) 永远不会有效

您可以通过使用交互式调试器并在代码执行时逐行单步执行代码来验证哪些内容有效,哪些无效。

根据您自首次发布以来的其他更改,问题似乎出在您的 isWord 函数中。看来该函数返回的值与您的意思相反。更改它,使 if(countAlpha == i) 返回 1(表示 true),而 else 返回 0(表示 false)。

关于c - 未分配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com