C++ String类相关函数及字符串输入输出函数cin()、getline()、gets()、getchar().

string类的常用构造函数

(须包含头文件以及using namespace std):

string  str——构造空的string类对象,即空字符串
string str(str1)——str1 和 str 一样
string  str("ABC")——等价于 str="ABC"
string  str("ABC",strlen)——等价于 "ABC" 存入 str 中,最多存储 strlen 个字节
string  str("ABC",stridx,strlen)——等价于 "ABC" 的stridx 位置,作为字符串开头,
                                  存到str中,最多存储 strlen 个字节
string  str(srelen,'A')——存储 strlen 个 'A' 到 str 中

string常用成员函数:

str.assign("ABC")——清空字符串,并设置为 "ABC"
str.assign("ABC",2)——清空字符串,并设置为"AB",保留两个字符
str.assign("ABC",1,1)——清空字符串,设置为 "ABC" 中的从 位置1 开始,保留 1个 字符
str.assign(5,'A')——清空字符串,然后字符串设置为 5个 'A'

str.length()——求字符串长度
str.size()——和 length() 一样
str.capacity()——获取容量,包含了不用增加内存就能使用的字符数
str.reasize(10)——设置当前 str 的大小为10,若大小大与当前串的长度,\0 来填充
str.reasize(10,char c)——设置当前 str 的大小为10,若大小大与当前串的长度,字0符c 来填充
str.reserve(10)——设置str的容量 10,不会填充数据
str.swap(str1)——交换 str1 和 str 的字符串
str.push_back('A')——在str末尾添加一个字符  'A' ,参数必须是字符形式
str.append("ABC")——在str末尾添加一个字符串 "ABC",参数必须是字符串形式。

C++中的字符串输入输出

1、直接用cin输入(当然可以使用cout直接输出):
  1)string s;
  2)char a[10];
  cin >> s; //只接收回车键和空格前面所输入的字符!!!!!
  cin >> a; //同样,只接收回车键和空格前面所输入的字符!!!!!
  一旦输入空格,cin将空格视为回车键,将会将后面的字符赋予后续有输入cin函数的变量中,故一定确保输入无空格!!
2、getline
  string line;
  getline(cin,line);//按回车键结束输入
  getline(cin,line,’#’);
  //输入一串字符(不管多少个回车键),只要是在‘#’号之 前的字符都会读取并保存
  
  //接受一个字符串可以接受空格并输出
  char m[20];
  cin.getline(m,5);
  输入:jkjkjkjkkjkjkjkj
  输出:jklj //第5个字符默认添加’\0’

注:get与getline区别不是很大,但一个明显的区别是get遇到’\n '字符后便返回,这时 '\n '还在缓冲区中,所以下次读出来的将是 '\n ‘,而getline遇到’\n '也返回,但它会把 '\n '从缓冲区里移除掉,所以很多时候用getline方便些。

3、cin.get()
  用法1: cin.get(字符变量名)可以用来接收字符
    char ch;
    ch = cin.get(); //只接受一个字符
   用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
    char a[20];
    cin.get(a,20);
注:cin.get()会将回车键存储在缓存中,若后面还有cin.get()函数,则该函数会将缓存中的回车键取出并赋予后面的输入变量中,故,使用了cin.get()函数就一定后面要加getchar(),将回车键读取并丢弃!!!!!!!!!

4、gets()【c++11已弃用!!!】
  //接受一个字符,可以接受空格并输出,需包含头文件#include
  char ch;
  gets(ch);

5、getchar()
  getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次getchar()时,确实需要人工的输入,但是如果你输了多个字符,以后的getchar()再执行时就会直接从缓冲区中读取了。
故一般用getchar()来清除缓存中的字符;

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隔壁de小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值