C++ 字符串与字符数组
1. 字符串
- 定义:字符串是一串由0个或多个字符组成的字符序列,可以是字母、数字、中文或其他符号。在C++中,字符串需要使用双引号包含。
- 示例:
"hello"
,"C++ Programming"
2. 字符数组
- 定义:字符数组是用于存储字符串的一种数据结构。每个字符数组的最后一个字符是
'\0'
,表示字符串的结束。 - 定义方式:
char c1[6] = {'h', 'e', 'l', 'l', 'o', '\0'}; char c2[6] = "hello"; char c3[] = {'h', 'e', 'l', 'l', 'o', '\0'}; char c4[] = "hello";
- 以上四种定义方式都可以用来创建和初始化字符数组。
3. 字符串的输入
- 使用
cin
输入字符串cin
不能接受输入的空格,遇到回车结束输入;- 不能控制输入字符串的长度。
char str[100]; cin >> str;
- 使用
cin.getline
输入字符串cin.getline(字符数组s, 长度n)
可以接受输入空格;- 控制输入字符串的长度;
- 只能用于输入字符串。
char str[100]; cin.getline(str, 100);
4. 字符数组的操作函数
- 计算长度:
strlen(s1)
int length = strlen(s1);
- 复制字符串:
strcpy(s1, s2)
strcpy(s1, s2);
- 拼接字符串:
strcat(s1, s2)
strcat(s1, s2);
- 比较字符串:
strcmp(s1, s2)
int result = strcmp(s1, s2);
5. 统计字符
- 问题描述:从键盘输入一个由英文字母和阿拉伯数字(含空格)组成的字符串,统计字符串的长度和字符串中数字的个数。
- 题目要求:
- 输入字符串的长度不超过1000;
- 计算所输入的字符串的长度(有效字符的个数);
- 计算所输入字符串中阿拉伯数字的个数。
- 输入输出样例:
输入:
输出:There are 5 apples and 8 oranges
32 2
- 完整代码示例:
#include <iostream> using namespace std; int main() { char s[1001] = {0}; // 1. 接受用户的输入 cin.getline(s, 1001); cout << s << endl; // 2. 统计字符串的长度和数字的个数 int i = 0, c = 0; while (s[i] != 0) { if (s[i] >= 48 && s[i] <= 57) c++; i++; } cout << i << endl; cout << c << endl; return 0; }