写在前面:推荐直接调用万能头
#include<bits/stdc++.h>
1.字符串的读取
- 按整行读到string ,推荐用 方法 getline(cin, string)
string a;
getline(cin,a);
- 按整行读到char[] ,推荐用 方法 cin.getline(input, SIZE)
char input[SIZE]; // 创建字符数组
cin.getline(input, SIZE); // 读取整行输入到字符数组中
- 读单个字符串,推荐用 cin>> (遇到空格停止)
一个字符串中可能包含多个连续的空格,请将多余的空格去掉,只留下一个空格。
输入样例:
Hello world.This is c language.
string a;
while ( cin>>a ) cout<<a<<' ';
输入格式
输入包含多组测试数据。
每组数据占一行,包含两个空格隔开的字符串 A和 B
输入样例:
ABC BCDEFA
ABC BADEFC
while (cin >> a >> b)
- 字符串数组
一共三行,将字符串b替换第一行字符串出现的字符串a
输入样例:
You want someone to help you
You
I
string a[ ];
while(cin>>a[i]) i++; // 都读完
2.字符串的函数
1.长度
string:
s.size()
char a[ ]:
strlen(a)
2.遍历
for(char s:a)
string a; // 或者 char a[SIZE]
for(char s:a) cout<<s<<' ';
3.大小写转换
char lower = 'a'; // 小写字母
char upper = lower - 32; // 计算大写字母
字符串
transform(s.begin(),s.end(),s.begin(),::tolower);
5.char 数组 转换到 string
char charArray[] = "Hello, World!";
string str(charArray);
6.find函数
find函数 查找子字符串:
返回找到的第一个匹配项的索引
找不到返回-1
pos = text.find(substr);
使用 rfind 查找 从右到左 查找
7.提取子串操作:
substr( pos [, len] )
// 提取从位置0开始的子字符串,长度为5
string sub1 = text.substr(0, 5);
// 提取从位置5开始的子字符串,直到字符串末尾
string sub2 = text.substr(5);
8.字符串排序
8.1 对字符串中的字符排序
string s = "banana";
sort(s.begin(), s.end());
sort(s.begin(), s.end(), greater<int>()); // 降序
8.2 对字符串数组排序
string arr[] = {"banana", "apple", "orange", "grape"};
int n = sizeof(arr) / sizeof(arr[0]); // 计算数组大小
sort(arr, arr + n); // 使用 sort 函数对字符串数组进行排序
9.字符串反转
string s = "hello";
reverse(s.begin(), s.end());
10. int to string
to_string()
int n;
string res;
res = to_string(n);