C++字符串输入输出

整理自 <C++ Primer Plus(第六版)>

C++ 字符串既保留了C中的字符数组的形式(C-style string), 又有一个专门的 String 类库.

C-style string

这种类型的字符串表达为 以\0 结尾的char数组. \0 是空字符null character, ASCII码是 0.

初始化

char dog[5] = {'h', 'e', 'l', 'l', 'l'};  // not a string
char cat[9] = {'I', ' ', 'a', 'm', ' ', 'T', 'o', 'm', '\0'};  // is a string
char str_cat1[9] = "I am Tom";  // make sure keep enough space for the '\0'
char str_cat2[] = "I am Tom";  // auto add '\0' at the end
char boss[8] = "Harry";  // auto supply '\0' after the last char 

IO

cin 使用空白(space , Tab\t, Enter\n) 来确定字符串的结束位置.
因此在字符串输入时, 如果句子中有空格就会切断输入, 只记录第一个单词. 解决办法是使用 istream类中的 getline(), get() 函数.

getline(arr, arr_size) 以换行符作为结束的标志, 读取了换行符并用空字符替换了.
get(arr, arr_size) 以换行符作为结束的标志, 但不读取换行符, 将其留在了输入流中.
注意, 当get() 没有参数时, 仅读取一个字符.

常用的函数

  • strlen(arr) : 返回数组中字符串的长度, 不含空字符. 即第一个字符到第一个\0的长度.
  • strcat(arr1, arr2) : arr1 += arr2
  • strcpy(arr1, arr2) : arr1 = arr2

String 类

初始化

string str = "this is a example!";

IO

getline(cin, str) 与上面提到的getline不同, 这个不是istream类的方法, 第一个参数是一个istream对象, 第二个参数是字符串变量.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值