[c++学习] 打卡第一天之string

与char[]不一样,没有'\0'

string初始化声明

//声明并初始化一个空字符串
string str1;  

//使用字符串字面量初始代字符串
string str2 = "Hello, World!";

//使用另一个string对象来初始化字符串
string str3 = str2;  //Hello, World!

//使用另一个string对象的一部分来初始化字符串
string str4 = str2.substr(0,5); //Hello  (刚好是5个字符,因为没有 '\0')
//substr(起始位置,字符串长度)

//使用字符数组(常量指针)初始化字符串
const char* charArray = "Hello";
string str5(charArray);//Hello  (常量指针对应字面量)

//使用重复的字符初始化字符串
string str6(5,'A');   // (字符个数,'字符') 

//输出字符串内容
cout << str << endl;

输入字符串

 1. cin >> s  遇到空格、换行和制表符结束,需包含“#include<iostream>”

2. getline(cin,s) 读入整行(可有空格)需包含“#include<string>”

3. cin.getline() :  空格也算一个字符,需包含“#include<iostream>”

1、cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符)
2、当第三个参数省略时,系统默认为'\0'
3、如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj(可看到4个,最后一个字符是'\0'),输入jkaljkljkl时,输出jk(也就是说,第三个参数优先)

4. 注意,当同时使用cin>>和getline()时,cin>>会把遇到的回车符留到缓冲区,getline()读取到的将是回车符,不是输入的下一个事先字符串

参考:C++:cin、cin.getline()、getline()的用法_getline(cin,s)函数用法-CSDN博客

C风格与c++风格的转换

成员函数 c_str() 用于返回一个指向以空字符结尾的c风格字符数组(const char*类型)

在进行printf输出时,需要将string转换成c风格字符串

char[100] bur;
scanf("%s",bur);
string str(bur);
printf("%s",str.c_str());

各种基本操作

重载就是重新定义的意思。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值