c++中char[]是如何比较大小的,注意不是string
发布网友
发布时间:2022-04-26 18:43
我来回答
共5个回答
热心网友
时间:2023-10-21 15:50
char字符的比较大小是通过ASCII值确定的,值越小则字符越小
char数组我记得在不做处理的情况下只能使用库函数strcmp比较大小
strcmp比较两个字符串的大小时,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.
比较算法是:逐个比较两个串中对应位(0-...)的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。
热心网友
时间:2023-10-21 15:51
1 a>b是假。但不能这样写,要写成:strcmp(a,b)>0。
2 字符串比较是从第一个字符开始比较,如果第一个字符相同,则比较下一个,直到找到不同字符,ASCII码大的则大。上面a与b的比较中,a的第一个字符'H'与b的第一个字符'w'不相同,且'H'<'w',因此a<b。追问您说的是string类。char 的刚好相反!!在编程环境下试试吧。。保证你大吃一惊
热心网友
时间:2023-10-21 15:51
a>b没有定义。在C++里面,C风格串的比较只能在strcmp函数里进行。而使用“>” “ <”必须让a,b指向同一个数组。C风格串的比较实际上是地址的比较
热心网友
时间:2023-10-21 15:52
是假
逐个字符比较ASC2码 直到遇到不同的字符或'\0' 比较结果是该函数的返回值
热心网友
时间:2023-10-21 15:52
这里我们有一个误区:标准C++中是不含string类,而string是在c++标准库中(即stl)中定义的。stl中还定义了很多如map,set,vector之类,标准库是c++的一个补充。在stl之前的编译器是不支持标准库。
另外,根据个人经验,用string与其重载的运算符的速度远不及用char[]快(速度可能不在一个数量级)。