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

时间:2018-03-22 10:29:54

标签: c++ char

#include <iostream>

using namespace std;

我希望用户输入两个char序列(例如adc和abd),程序会告诉他们字符整数与否是相同的(现在输出为FALSE) 我不知道如何处理声明我的char变量。

char x[100]{};
char y[100]{};

如果两个char值相同,这是我的isEqual函数

void isEqual(char x , char y)
{
    for ( int i = 0 ; x[i] != '\0';i++){
        for ( int j = 0 ; y[j] != '\0'; j++){
            if ( x[i]==y[j]){
                cout<<"TRUE";
            }else{
                cout<<"FALSE";
            }
        }
    }
}

所以用户在这里输入两个char变量然后调用isEqual函数来查看它们是True还是False。

int main()
{
    cout<<"Enter first characters :";
    cin>>x;
    cout<<"Enter second characters :";
    cin>>y;
    isEqual(x,y);
}

2 个答案:

答案 0 :(得分:3)

在你的例子中,你有一个错误,一个不清楚。

  1. 错误: 你已经像这样定义了x和y:

    char x[100]{};
    char y[100]{};
    

    在单词之后创建一个方法,该方法有两个参数:

    void isEqual(char x , char y)
    

    如果您注意到,x和y是char数组。同时方法isEqual有两个参数,它们只是char而不是char数组。因此,无论何时你想使用方法中的前两个元素,都是不可能的,因为这种不合适。

  2. 在这个例子中,我明白,你想要实际比较两个字符串。只比较字符串更准确。因此,有一种更容易和更好的方法来比较使用字符串的字符组:

    #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";
       }
    }
    
  3. 这是一个简单的例子,它使用了已经存在于c ++中的库中的函数。您可以查看此page以获取有关上述比较功能的更多详细信息。 假设你是一个初学者,最重要的部分,你应该在开始时理解,以便能够在以后使用它:

    • 0:他们比较等于
    • 小于0:不匹配的第一个字符的值在比较字符串中较低,或者所有比较的字符匹配但是 比较字符串更短。
    • 大于0:第一个不匹配的字符的值 在比较字符串中更大,或者所有比较的字符匹配但是 比较字符串更长。

答案 1 :(得分:1)

Char是单个字符,如'a',“abc”不是char变量,它是字符串varibale。 比较char没有不同的形式比较任何其他类型,如整数,只需使用==运算符:

char a = 'a';
char b = 'b';

bool isSame = a == b;

在这种情况下,同样是假的。

在C中没有字符串的变量类型,所以你应该使用字符数组,你不能使用==运算符,它有一个特殊的函数,它被称为strcmp

const char* string1 = "I am a string";
const char* string2 = "I am a string";
int isEqual = strcmp( string1, string2 );

在这种情况下,isEqual将返回0,表示字符串相等,不要对此感到困惑,请参阅描述以了解含义值的详细信息。

在C ++中,有一个名为std::string的字符串的特殊类,此类型也有一个特殊的== operator定义,所以你可以像往常一样使用它:

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

或者您可以使用与strcmp相同的方法compare

std::string string1 = "I am a string";
std::string string2 = "I am a different string";
int res = string1.compare( string2 );

在这种情况下,res将等于1