C++ 如何查看两个char变量是否相等

C++ 如何查看两个char变量是否相等,c++,char,C++,Char,这是我的isEqual函数,用于计算两个字符值是否相同 char x[100]{}; char y[100]{}; void相等(字符x,字符y) { 对于(int i=0;x[i]!='\0';i++){ 对于(int j=0;y[j]!='\0';j++){ 如果(x[i]==y[j]){ 在你的例子中,你有一个错误和一个不明确 错误: 您对x和y的定义如下: int main() { cout<<"Enter first characters :"; cin&

这是我的isEqual函数,用于计算两个字符值是否相同

char x[100]{};
char y[100]{};
void相等(字符x,字符y)
{
对于(int i=0;x[i]!='\0';i++){
对于(int j=0;y[j]!='\0';j++){
如果(x[i]==y[j]){

在你的例子中,你有一个错误和一个不明确

  • 错误: 您对x和y的定义如下:

    int main()
    {
        cout<<"Enter first characters :";
        cin>>x;
        cout<<"Enter second characters :";
        cin>>y;
        isEqual(x,y);
    }
    
    在words之后创建一个方法,该方法有两个参数:

    char x[100]{};
    char y[100]{};
    
    如果您注意到,x和y是char数组。同时,方法isEqual有两个参数,它们只是char数组,而不是char数组。因此,无论何时您想要使用方法中的前两个元素,都是不可能的,因为这种不一致性

  • 在本例中,我了解到,您希望实际比较两个字符串。仅比较字符串以更精确。因此,有一种更简单、更好的方法来比较使用字符串的字符组:

    void isEqual(char x , char y)
    
    #包括
    #包括
    使用名称空间std;
    int main()
    {
    字符串x,y;
    cin>>x>>y;
    如果(x.compare(y)==0)/*它们相等*/{
    
    在你的例子中,你有一个错误和一个不明确

  • 错误: 您对x和y的定义如下:

    int main()
    {
        cout<<"Enter first characters :";
        cin>>x;
        cout<<"Enter second characters :";
        cin>>y;
        isEqual(x,y);
    }
    
    在words之后创建一个方法,该方法有两个参数:

    char x[100]{};
    char y[100]{};
    
    如果您注意到,x和y是char数组。同时,方法isEqual有两个参数,它们只是char数组,而不是char数组。因此,无论何时您想要使用方法中的前两个元素,都是不可能的,因为这种不一致性

  • 在本例中,我了解到,您希望实际比较两个字符串。仅比较字符串以更精确。因此,有一种更简单、更好的方法来比较使用字符串的字符组:

    void isEqual(char x , char y)
    
    #包括
    #包括
    使用名称空间std;
    int main()
    {
    字符串x,y;
    cin>>x>>y;
    如果(x.compare(y)==0)/*它们相等*/{
    
    coutChar是与“a”类似的单个字符,“abc”不是Char变量,而是string变量。 比较字符与比较任何其他类型(如整数)没有区别,只需使用==运算符:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
       string x, y;
       cin >> x >> y;
       if (x.compare(y) == 0) /*They are equal*/ {
           cout << "True";
       } else {
           cout << "False";
       }
    }
    
    在这种情况下,相同的将是错误的

    在C语言中,字符串没有变量类型,所以应该使用字符数组,不能使用==运算符,它有一个特殊的函数,叫做:

    在这种情况下,isEqual将返回0,这意味着字符串是相等的,请不要对此感到困惑,有关含义值的详细信息,请参见说明

    <>在C++中有一个特殊的字符串,它也有一个特殊的类型,所以你可以像往常一样使用它:

    const char* string1 = "I am a string";
    const char* string2 = "I am a string";
    int isEqual = strcmp( string1, string2 );
    
    或者您可以使用与strcmp相同的方法:

    std::string string1 = "I am a string";
    std::string string2 = "I am a string";
    bool isEqual = string1 == string2;
    

    在这种情况下,res将等于1,Char是一个类似“a”的单个字符,“abc”不是Char变量,而是string变量。 比较字符与比较任何其他类型(如整数)没有区别,只需使用==运算符:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
       string x, y;
       cin >> x >> y;
       if (x.compare(y) == 0) /*They are equal*/ {
           cout << "True";
       } else {
           cout << "False";
       }
    }
    
    在这种情况下,相同的将是错误的

    在C语言中,字符串没有变量类型,所以应该使用字符数组,不能使用==运算符,它有一个特殊的函数,叫做:

    在这种情况下,isEqual将返回0,这意味着字符串是相等的,请不要对此感到困惑,有关含义值的详细信息,请参见说明

    <>在C++中有一个特殊的字符串,它也有一个特殊的类型,所以你可以像往常一样使用它:

    const char* string1 = "I am a string";
    const char* string2 = "I am a string";
    int isEqual = strcmp( string1, string2 );
    
    或者您可以使用与strcmp相同的方法:

    std::string string1 = "I am a string";
    std::string string2 = "I am a string";
    bool isEqual = string1 == string2;
    

    在这种情况下,res将等于1。您的示例程序格式不正确。您无法将下标运算符应用于
    char
    对象。可能重复使用
    std::string
    ,并与
    =
    “char值(如(adc和abd)”“abc”进行比较不是字符值,它是存储为字符数组的字符串。您的示例程序格式不正确。无法将下标运算符应用于
    char
    对象。可能重复使用
    std::string
    ,并与
    =
    字符值进行比较,例如(adc和abd)”“abc”不是一个字符值,它是一个存储为字符数组的字符串。@BoPersson,因为有反馈的可能性。如果你使用compare,你会得到三种情况。在我看来,这会使你的工作更容易。而且使用一种方法,更像方法isEqual应该是什么。但是,如果它们是相同的,你只需进行比较ical两种方法都一样正确。@BoPersson因为反馈的可能性。如果你使用比较,你会得到三个案例。在我看来,这会使你的工作更容易。而且使用一种方法,更像是isEqual应该是什么样的方法。但是,如果两种方法完全相同,只需比较就可以了没错。