赞
踩
若是比较两个字符,则可以用"=="直接进行比较~
但在比较两个string对象时是可以利用“==”的,相等的话,则表达式的返回值为1,不等为0。
- #include<iostream>
- #include<string>
-
- using namespace std;
-
- int main() {
- char a[] = "aaa",b[]="aaa";
- string A = "AAA", B = "AAA";
- cout <<"*a和*b的值分别是:" <<*a << "," << *b << endl;
- cout <<"*“aaa”的值是:"<< *"aaa" << endl;
- cout <<"利用 == 比较a,b两个字符串,结果是(相等为1,不等为0):" <<(a==b) << endl;
- cout << "利用strcmp()比较a,b两个字符串,结果是(相等为0,不等非0):"<<strcmp(a,b) << endl;
- cout << "利用 == 比较A,B两个string,结果是(相等为1,不等为0):"<<(A==B) << endl;
- cout << "利用compare()比较A,B两个string,结果是(相等为0,不等非0):" << A.compare(B) << endl;
- //int x = 10;
- //void* p = &x;
- //cout << sizeof(void*) << " address" << p << endl;
- return 0;
- }
输出结果为:
从程序中可以看到,在比较字符串不能用"=="的原因是字符串本身是一个地址,举例:
char a[]="aaa";
很容易理解a是一个指向字符串的指针,但同时也应该知道包含引号在内的"aaa"字符串本身也是一个地址,指向该字符串的首元素,故而会有 *"aaa"的结果为a。
对于string对象而言,则没这么多注意事项。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。