首页 > 解决方案 > 为什么我的布尔函数没有被实现?

问题描述

我正在尝试实现一个字符串比较函数,我想在其中返回一个布尔值,但我遇到了几个错误,我不知道为什么会这样。

编译器显示的错误是

"error: unknown type name bool" 
&
"error: false, true undeclared" 

现在据我所知,bool 只有两个值,即真或假,那为什么我仍然有问题?

bool string_cmp(char word1[],char word2[]){
    bool  isEqual = false;
    int i,k=sizeof(word1);
    for(i=0;i<=k;i++){
        if(word1[i]!=word2[i]){
            isEqual=false;
        }
        else
            isEqual=true;
            break;
    }
    return isEqual;
}

编辑后的代码(为什么我在 word1 数组中添加更多单词时输出错误?):

bool string_cmp(char word1[],char word2[]){
    bool  isEqual = false;
    int i,k=sizeof(word1);
    for(i=0;i<=k;i++){
        if(word1[i]!=word2[i]){
            isEqual=false;
            break;
        }
        else
            isEqual=true;
    }
    return isEqual;
}

int main()
{
    int count;
    bool cmp;
    char word1[40]={"Hi world world"},word2[20]={"Hi world"},result[60]; //the only case when I am getting wrong output; otherwise if both words are same or if I remove something from word2, I get the output as expected.
    cmp=string_cmp(word1,word2);
    printf("%d",cmp);
}

标签: c

解决方案


你所要做的:

#include <stdbool.h> 

在 c 程序中,以便访问 bool 类型和真/假定义。


推荐阅读