C-style字符串
结尾带’\0’,这对于很多处理字符串的函数很关键。#include
strlen():只计算数组或者指针中的字符个数,不带结尾
cin.getline(name,20)
:读取整行的字串到name,最多20个
cin.get():类似,但下一次调用开头会带有换行(换行缓存到下次get),顺便检查了上一次输入的正确程度。
针对string类的getline(cin, string); 与cin混合使用时,在cin>>完成后,getline前需要通过getline(cin,”\n”)清除缓存,否则不进入getline输入。
1 | // 清除缓存 |
string类
1 |
|
更方便,也更安全。像vector一样管理char.
struct和union
union只能同时存储一种类型,其他类型的会lost
new和delete
- 不要delete释放不是new的内存
- 不要delete同一块内存两次
- new[]数组应当用delete []释放
- 若用new[]为单一实体分配内存,应使用delete(不带方括号)释放
- 对空指针delete是安全的
cin与cin.getline区别
cin.getline(addr,80) 与cin>>addr
getline:读整行直到‘回车’
cin:首先跳过‘空格’,读取字串,再次遇‘空格’停止;即跳过前面的空格,读取单个单词。
1 | cin>>ch; |
上面区别主要是cin>>ch直接跳过空格换行以及制表符
string格式化输出4位数字,前面补0,多用于文件名操作
1 | int num_zero = 4; |
注意int_val长度小于num_zero。