C++ 字符 字符数组 字符串函数
2013-11-21 22:17
155 查看
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
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读取数据,把空格,回车当做数据间隔符,直接跳过。
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
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读取数据,把空格,回车当做数据间隔符,直接跳过。
相关文章推荐
- c++中一串字符数组的输入
- C/C++ 调用qsort/sort 对字符数组排序的cmp函数写法
- c++中字符数组与字符串的转换
- C++ 字符数组
- C/C++ 分割字符并返回字符数组实例
- 浅谈C++字符数组与字符串指针
- 字符数组在C++、C#等语言中的操作
- c++ getline用法实例,读取一行到字符数组+读取一行到字符串
- c++中字符数组与字符串的转换
- C++ 字符数组函数与string函数
- 关于字符数组 和 字符串比较 C++
- c++中怎样将字符数组转化成字符串变量...?
- C++中字符数组和字符指针问题
- C++编写二进制字符数组转ASCII码的函数
- C/C++中字符指针数组及指向指针的指针的含义
- C/C++学习笔记(二)数组、字符
- C++ 字符数组函数与string函数
- C++用字符数组实现MyString类
- C++ 字符数组和字符指针和字符串
- C++中字符数组与string的相互转换