c-风格字符串和string类型的字符串的异同
来源:互联网 发布:php exec函数用法 编辑:程序博客网 时间:2024/06/04 23:31
c-风格字符串的比较:
给大家先看一个程序
#include<iostream>#include<cstring>using namespace std;int main(){ char word[50]="?ate"; for(char ch='a';strcmp(word,"mate");ch++) { cout<<word<<endl; word[0]=ch; } cout<<"after loop ends,word is"<<word<<endl; return 0;}结果:
分析:strcmp()是c++库中的函数,该函数接受两个字符串地址(指针、字符串常量、字符数组名等)作为参数,若两个字符串相同,该函数返回零,若第一个字符串按字母顺序排在第二个字符串之前,该函数返回一个负数值,相反,则返回一个正数。
c-风格的字符串常量表示地址!!!这是最重要的
所以,word=="mate",这个关系式并不是判断两个字符串是否相同,而是查看他们是否存储在相同的地址上。所以对c-风格的字符串使用关系运算符来比较他们,会无法得到满意的答案。
C-风格字符串是以空字符null结束的字符数组。
string类型的字符串:
#include<iostream>#include<cstring>using namespace std;int main(){ string word="?ate"; for(char ch='a';word="mate");ch++) { cout<<word<<endl; word[0]=ch; } cout<<"after loop ends,word is"<<word<<endl; return 0;}结果:
分析:关系运算符“!=”左边是一个string对象,右边是一个c-风格的字符串,string类重载了“!=”,让我们能在下述条件下使用他:至少要给操作数是string对象,另一个操作数可以是string对象,也可以是c-风格的字符串。
注:第一个程序,结果显示和程序不一样,是因为我后面把程序改了一下。
阅读全文
0 0
- c-风格字符串和string类型的字符串的异同
- C风格字符串和string类型的相互转换
- C风格字符串的类型
- C风格字符串&string类型
- C风格字符串和C++的标准库类型string的比较
- C风格字符串和C++string对象的相互转化
- C风格字符串和C++string对象的相互转化
- C风格的字符串和std::string的比较
- c风格字符串和string使用的一些注意点
- c 风格字符串和string
- string 与 c 风格字符串以及字符串常量的不同
- 完成一程序演示字符数组、C风格字符串、std::string和MFC中的Cstring类型之间的相互转换
- C++标准库的string类型与C 风格的字符串的相互转换
- C和Java字符串和字符串数组的异同点
- C风格的字符串
- c风格的字符串
- C风格的字符串
- c风格的字符串
- class Introduction to Databases in Python
- java初级入门
- Android使用通知
- 在 Golang 中开发中使用 Makefile
- 遍历二叉树
- c-风格字符串和string类型的字符串的异同
- Spring Data JPA进阶-@Query注解
- Android studio中布局文件出现render problem问题
- 【CSS】学习笔记
- 二叉树操作(删除)
- hdu1232(基础并查集)
- 将两个字符串连接起来,不要用strcat
- 什么是POJO?
- github:建立和删除一个fork