#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);
}
答案 0 :(得分:3)
在你的例子中,你有一个错误,一个不清楚。
错误: 你已经像这样定义了x和y:
char x[100]{};
char y[100]{};
在单词之后创建一个方法,该方法有两个参数:
void isEqual(char x , char y)
如果您注意到,x和y是char数组。同时方法isEqual有两个参数,它们只是char而不是char数组。因此,无论何时你想使用方法中的前两个元素,都是不可能的,因为这种不合适。
在这个例子中,我明白,你想要实际比较两个字符串。只比较字符串更准确。因此,有一种更容易和更好的方法来比较使用字符串的字符组:
#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 ++中的库中的函数。您可以查看此page以获取有关上述比较功能的更多详细信息。 假设你是一个初学者,最重要的部分,你应该在开始时理解,以便能够在以后使用它:
答案 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