C++ 字符 字符数组 字符串函数

1. 字符数组初始化

  • char ch[] = {'C', 'h', 'i', 'n', 'a'};    // 数据只占用5个char类型的空间
  • char ch[] = "China";    // 数据占用6个char类型的空间,末尾默认添加'\0'

2. 不能用赋值语句将一个字符串常量字符数组直接赋给另一个字符数组,如下面:
  • str1[ ]= “China”;(赋值,不合法)
  • str1 = “China”;(赋值,不合法)
  • str2 = str1;    (赋值,不合法)

3. 打印输出数组,cout << ch << endl;  //遇到‘\0’结束输入

4. 读入一个字符 (EOF常被作为文件结束的标志)
  • char ch;
  • 方法一:cin >> ch;    // 不读入空格,回车
  • 方法二:ch = cin.get();    // 空格,回车符号同样能读入
  • 方法三:cin.get(ch);    // cin.get(ch) 读入错误返回0
  • 方法四:ch = getchar();    // 不跳过任何字符,包括^Z ,需要#include <stdio.h>

5. 读入一串字符
  • char str[10];
  • 方法一:cin >> str;    // 空格,回车符号会被当做字符串之间的分隔符
  • 方法二:cin.get(str, 10, '\n');    // 读取1-10个字符包括空格;第三个参数代表读取终止符,读取过程中遇到它就终止后面的输入(默认值是‘\n’,缓冲区指针停在当前终止字符的位置);读取成功,返回一个非0值,如果失败,返回0;str字符数组末尾结束符为'\0'
  • 方法三:cin.getline(ch, 10, '\n');    // 读取1-10个字符包括空格;第三个参数代表读取终止符,读取过程中遇到它就终止后面的输入(默认值是‘\n’,缓冲区指针停在当前终止字符之后);读取成功,返回一个非0值,如果失败,返回0;str字符数组的末尾结束符'\0',最多读入有效字符为9位
  • 注意:int num; cin >> num; cin.getline(str, 10);    // getline会读入的字符是缓冲区取出num数之后的'\n'

6. 字符串处理函数(cstring / string.h头文件中)
  • 字符串连接函数:char *strcat(char *dest, char *src);
  • 字符串复制函数:char *strcpy(char* dest, const char *src);
  • 字符串比较函数:int strcmp(const char *s1,const char * s2);// s1>s2,返回正数;s1==s2,返回0;s1<s2,返回负数
  • 字符串长度函数:unsigned int strlen(char *s);// 结果是不包含字符串中的‘\0’

7. 字符串类 (#include <string>)
  • 定义字符串变量:string str1;
  • 字符串赋值:str1 = "This is a string";    string str2 = str1;
  • 字符串输入输出:cin >> str1; cout << str2;
  • 字符串复制:string str3; str3 = str2;
  • 字符串连接:str3 = str2 + str1;
  • 字符串比较直接用关系运算符:>, <, =, !=, >=, <=

附:cin的一些知识
  • (cin>>number) 如果正确读到结果,返回一个非0值;反之,返回0。通过该方法可以实现连续输入。
  • 输入数据结果遇到回车之后,数据才被送入数据缓冲区。
  • 对于cin读取数据,把空格,回车当做数据间隔符,直接跳过。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值