【C++基础】C++中的字符串

C++支持两种字符串,一种是从C继承过来的C-字符串;另一种是string。下面对它们进行简要的分析。

【C-字符串】
1、 【简介】C-串是以一个全0位(整数0)字节作为结束符的字符序列。该全0字节既是8位的整数0,也是ASCII码的0。
(1)【空间长度】字符串长度加1,因为它末尾有一个0作为结束符
(2)【类型】C-串的类型为char*型

2、 字符指针与字符数组
(1)char* str=”Hello!”;
(2)str是字符指针变量,*str是字符指针变量的间接引用
(3)【输出】
输出字符指针就是输出C-串,输出所有字符,直到遇到0
输出字符指针的间接引用,就是输出单个字符
(4)比较:C-串字符是字符指针,因此,比较两个【内容相同】的C-串时,会它们的空间位置不相同而不同
C库函数中,专门设计了C-串的比较函数【strcmp】来用于比较

(5)复制:C-串字符数组是不能简单复制的

char a1[6]=”hello”;
char a2[6]=a1; //错误

C库函数设计了【strcpy】函数用于C-串复制
注:C-库函数在string.h的头文件中

【string】
1.【简介】string是一种自定义的类型,它可以方便地执行C-串不能直接执行的一切操作
2.【处理空间】string的处理空间是自动的,需要多少,用多少;它不用担心指针脱离;它可从C-串转换得到,还可从内部“提炼”出C-串
3.string与C-串有良好的亲和性,C-串可以直接赋值给创建中的和已经存在的string变量


【字符串的输入/输出】
1.输入:

(1)循环读入方式:运用“cin>>”

for(string s;cin>>s;)
cout<<s<<” ”;
cout<<endl;
或者

for(char a[10];cin>>a;)
cout<<a<<” ”;
cout<<endl;
注:

-“cin>>”的读入方式总是将前导的空格(空格、回车、水平或垂直制表符等)过滤掉,当遇到空格时结束本次输入
-“cin>>”不能辨别空格与回车的差异


(2)通过getline逐行输入:

string s;
getline(cin,s);
cout<<s<<endl;
或者

char a[40];
cin.getline(a,40);
cout<<a<<endl;
注:getline总是将行末的回车符过滤掉


(3)逐个字符输入

for(char ch;(ch=cin.get())!=’\n’;)
cout<<char(ch);
cout<<endl;


【string流】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值