定义
指元素是字符的数组,用来存放字符序列或字符串。字符串可以包含字母、数字、符号等多种字符,用于表示文本信息。
字符数组 char[]
C++中,字符串被存储在char类型的数组中。
- 字符串的末尾位置字符是
\0
,空字符null character
。 - 非打印字符,其 ASCII 码值为 0。
- 数组容量必须至少比待存储字符串中的字符多 1。
- 字符串定义:
char name[5];
- 字符串和字符
- 'A' 占一个字节
- "A" 占两个字节,包括 '\0'
#include <bits/stdc++.h>
using namespace std;
int main() {
char a='\0';//空字符,不存在这个字符
char b=' ';//空格字符,编码是32
int x=a;
int y=b;
cout<<x<<endl<<y<<endl;
return 0;
}
char[] 初始化
- char ch[15]={'n','i','c','e',' ','t','u','l','i','n','g','.','\0'};
- char ch1[15] = "nice tuling."; \\C++编译器会自动在字符串末尾添加空字符 '\0'。
#include <iostream>
using namespace std;
int main() {
// 必须有 '\0' 作为终止,否则可能会出现乱码
char str[110];
str[0] = 'a';
//str[1] = '\0';
cout << str << endl;
char str2[110];
str2[0] = 'b';
str2[1] = '\0';
cout << str2 << endl;
char str3[110];
str3[0] = 'c';
cout << str3 << endl;
return 0;
}
获取带空格字符串
- cin.getline(数组名, 数组长度)
- cin 与 cin.getline() 连用时,cin 后面加上 cin.ignore(),清除缓冲区。
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
char str[N];
int main() {
cin>>str;
//cin.ignore();
//cin.get();
cin.getline(str,N);
cout<<str<<endl;
return 0;
}
char[] 字符串常用处理函数
字符串 string
string 是 C++ 的 STL(Standard Template Library 即标准模板库)提供的字符串类,用于处理字符串相关的问题。
string 初始化
- string 类型声明:
string s;
- string 类型初始化:string s = "abc";`
输入
- string 类型输入:
cin >> s;
- 输入带空格的字符串:
getline(cin, s);
基本操作
- 求字符串s的长度:s.size() s.length()
- 获取字符串的某个下标对应的字符: s[下标]
循环操作
方法1
string s; getline(cin,s); for(int i=0;i<s.size();i++){ cout<<s[i]; }
方法2
string s; getline(cin,s); for(int i=0;s[i]!='\0';i++){ cout<<s[i]; }
- string 类型输出:
cout << s;
[info] 使用string的优点
(1)长度可以理解为不限定。
(2)string 可以做加法,可以比较大小!
(3)string 有很多系统定义函数,方便我们编程。
string 常用处理函数
string和char[]有什么区别
(1)字符数组本质上还是数组,因此长度固定; string 可以理解为长度不限的字符串;
(2)字符数组的系统定义的函数过少,导致操作不方便; string 集成大量的系统函数, 方便操作;
(3)字符数组由于本质是数组,因此不能进行比较运算以及+运算; string 可以直接 做比较和+运算;