gpt4 book ai didi

c - pangram 函数在 c 中不起作用

转载 作者:行者123 更新时间:2023-11-30 18:25:32 26 4
gpt4 key购买 nike

#include<stdio.h>
#include<ctype.h>
#include<stdbool.h>
#include<string.h>
#define number_of_letters 26
bool IsPangram(char* string);
int main(){
char check[100];

当我将输出设置为“快速的棕色狐狸跳过懒狗”时,输出不是全字母组合当我将 a 到 z 值放在一行上时,会给出正确的输出

scanf("%s",&check);

if(IsPangram(check)){
printf("the string entered is pangram");
}
else{
printf("not a pangram");
}

return 0;
}

有pangram的功能

 bool IsPangram(char* string){
bool flags[number_of_letters];
int size=strlen(string);
bool ispangram=true;
int i;
char c;
// for all the alfabets to be setting them to false
for(i=0;i<number_of_letters;i++){
flags[i]=false;
}
// for converting the uppper case letter to the small one
for(i=0;i<size;i++){
c=tolower(string[i]);
if(islower(c)){
flags[string[i]-'a']=true;
}
}
// for checking the the lettters to no pangram
for(i=0;(i<number_of_letters && ispangram==true);i++){
if(flags[i]==false){
ispangram=false;
}

}
return ispangram;
}

最佳答案

将字符串作为 char * 传递时,不需要使用 &,因为当作为参数传递时,数组会衰减为指针。

所以:

scanf("%s",&check);

应该是:

scanf("%s", check);

还有一些一般性建议:打开编译器警告以帮助捕获此类简单错误,并学习基本的调试技术(在调试器中单步调试代码、添加策略性 printf 语句等)。

关于c - pangram 函数在 c 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27752890/

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