C++ 复合类型的一些小细节

本文介绍了C++中如何进行字符串拼接,包括使用getline函数处理输入时的换行问题,C++11引入的原始字符串字面量,以及动态内存分配和释放。同时,文章提到了指针与字符串的关系,强调了字符串在内存中的表示方式。

空格隔开的字符串自动拼接

string s = "123" "234";
cout << s << endl;

cin.getline()和cin.get()

cin,get不会丢掉换行符
getline会丢掉

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
	char s1[20], s2[20];
	// 自动扔掉缓冲区里的换行 
	cin.getline(s1, 20).getline(s2,20);
	cout << s1 << endl << s2 << endl;
	//缓冲区里的换行符依旧存在,利用返回的cin对象再次get()吃掉单个字符 
	cin.get(s1,20).get(); 
    cin.get(s2,20).get(); 
    cout << s1 << endl << s2 << endl;
}

string的一些小细节

在这里插入图片描述
在这里插入图片描述

C++ 11 的原始字符串

在这里插入图片描述

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
	cout << R"(Jim "King" Tutt uses "\n" instead of endl.)" << '\n';
	//等价于
	cout << "Jim \"King\" Tutt uses \" \\n\" instead of endl." << '\n'; 
}

在这里插入图片描述

C++ 动态开空间

	int size;
	cin >> size;
	int * pz = new int [size];  // dynamic binding, size set at run time
	delete [] pz;               // free memory when finished

指针和字符串

用引号引起来的字符串和数组名一样,也是第一个字符的地址

cout << "asdf"[0] << endl;
语法成立,输出字符a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_WAWA鱼_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值