gpt4 book ai didi

c - 函数的输出值与循环中的 printf 值不匹配

转载 作者:行者123 更新时间:2023-11-30 15:21:54 27 4
gpt4 key购买 nike

我必须创建一个函数来写出字母表中的可用字母。例如,用户输入 a ,函数输出将为 bcdefgh...

如果我在循环中使用printf,一切都可以。但是,如果我将该字母写入数组,然后我想打印出数组,我会在输出中得到完整的字母表。

void getAvailableLetters(const char lettersGuessed[],char availableLetters[]){
char abeceda[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','q','p','r','s','t','v','u','w','x','y','z'};
printf("Available letters: ");
int x=0;
int i;
for( i=0 ; i<strlen(abeceda); i++){
for(int j=0 ; j<strlen(lettersGuessed); j++){
if(abeceda[i] == lettersGuessed[j]){
x=1;
}
}
if(x==0){
availableLetters[i]=abeceda[i];
//printf("%c",abeceda[i]);
}
x=0;
}
printf("%s",availableLetters);}

如果我在注释中使用 printf ,输出很好,但数组 availableLetters 的输出包含完整的字母表。

最佳答案

availableLetters[i]=abeceda[i];

这显然是错误的,因为 availableletters 包含的字母少于整个字母表,因此 i 不能用于索引。您也永远不会在已完成的 availableletters char 数组中设置空字节,因此它根本不应该作为字符串打印。您可能应该清除可用的字母,即可用字母[0] = 0;然后给它自己的增量器说整数 j = 0;然后在向数组添加字母时向上 j最后使 availableLetters[ j+1] = 0;

关于c - 函数的输出值与循环中的 printf 值不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29451979/

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