C++中怎样判断两个字符型数组元素相等?

给段小代码
2024-12-19 09:30:33
推荐回答(5个)
回答1:

直接用C++库函数strcmp(char* a,char* b)就可以比较出两字符串是否相等,对于字符型数组也是一样的,只要分别带入数组地址就可以了。函数返回0 ,表示相等;大于0表示字符串a大于字符串b;反之小于则串a小于b。

而这里的库函数做的比较是一次比较字符串中相同位置的单个字符的ASCII得出的结果。你也可以自己用C++代码实现这个比较,下面我随便写了一个函数来单个单个的比较,只判断是否相等,返回1(true)为相等,返回0(false)为不相等。

具体代码如下:

char a[]={a,b,c};

char b[]={a,b,c};

bool function(char a[],char b[])

{int n = 0;

if(strlen(a) != strlen(b)) //判断两数组/字符串的长度是否相等,不相等就肯定不会有数组/字符串相等了

return 0;

else

{while(a[n]!='\0' && b[n]!='\0')

{if(a[n] == b[n])

n++;

else

return 0; }}

return 1;}

扩展资料

C++语言特点:

1、支持数据封装和数据隐藏

在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。

在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。

完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。

2、支持继承和重用

在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。

3、支持多态性

采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。

继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。

参考资料:百度百科-C++

回答2:

直接用库函数strcmp(char* a,char* b)就可以比较出两字符串是否相等,对于字符型数组也是一样的,只要分别带入数组地址就可以了。函数返回0 ,表示相等;大于0表示字符串a大于字符串b;反之小于则串a小于b。而这里的库函数做的比较是一次比较字符串中相同位置的单个字符的ASCII得出的结果。你也可以自己用C++代码实现这个比较,下面我随便写了一个函数来单个单个的比较,只判断是否相等,返回1(true)为相等,返回0(false)为不相等
char a[]={a,b,c};
char b[]={a,b,c};
bool function(char a[],char b[])
{
int n = 0;
if(strlen(a) != strlen(b)) //判断两数组/字符串的长度是否相等,不相等就肯定不会有数组/字符串相等了
return 0;
else
{
while(a[n]!='\0' && b[n]!='\0')
{
if(a[n] == b[n])
n++;
else
return 0;
}
}
return 1;
}

回答3:

是数组的长度相等还是数组的内容长度相等,还是内容相等??
内容相等用strcmp()函数就可以比较了
如:
char a[] = "the",b[10] = "The";
strcmp(a,b);//比较两字符串是否相同;
内容长度相等用strlen()分别得出两字符串的长度,然后比较长度。
char a[] = "the",b[10] = "The";
strlen(a) == strlen(b);//比较两字符串长度是否相同;
数组的长度可以用sizeof来得到数组的长度,然后比较长度;
char a[] = "the",b[10] = "The";
(sizeof)a/(sizeof)char == (sizeof)b / (sizeof)char ;//比较两字符数组长度是否想偷

回答4:

有两个办法:一个使用for逐字节去判断:void comp(char *a,char *b){if(strlen(a)!=strlen(b)) return false;//长度不相等字符串一定不相等for(int i=0;i<=strlen(a);i++) if(a[i]!=b[i]) return false;return true;} 另一个是直接使用strcmp相等返回0

回答5:

char a,b;
if(a == b) || a > b || a < b
比较时按照asic码表里面的值来比较的