目录
string,是一种隶属于C++STL的一种数据结构
string
是什么
std::string
是在标准库 <string>
(注意不是 C 语言中的 <string.h>
库)中提供的一个类,本质上是 std::basic_string<char>
的别称。
在 C 语言中,提供了字符串的操作,但只能通过字符数组的方式来实现字符串。而 string
则是一个简单的类,使用简单,在 OI 竞赛中被广泛使用。并且相较于其他 STL 容器,string
的常数可以算是非常优秀的。
相比与字符数组,string更加简便长度可变,附带了很多函数,从而更受欢迎。
string
的加法运算符可以直接拼接两个字符串或一个字符串和一个字符。和 std::vector
类似,string
重载了比较运算符,同样是按字典序比较的,所以我们可以直接调用 std::sort
对若干字符串进行排序。
string
怎么用
定义
定义先导入string库。
#include <string>
例程:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string x;
cin >> x;
cout << x << endl;
return 0;
}
这个代码输入“awa” , 就会输出“awa”。
函数
string拥有非常多的函数,下面先列举一些常用的
size()
:返回字符串的长度。empty()
:检查字符串是否为空。operator[]
:通过索引访问字符串中的字符。find()
:查找子字符串在主字符串中的位置。getline()
:(非内部函数)获取字符串(相较于cin或scanf,他可以获取一整行及空格)
实例
传送门:信息奥赛一本通1144:单词翻转
1144:单词翻转
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
输入一个句子(一行),将句子中的每一个单词翻转后输出。
【输入】
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
【输出】
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
【输入样例】
hello world
【输出样例】
olleh dlrow
代码(C++):
#include <bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{
std::ios::sync_with_stdio(false), cin.tie(0);
string str;
getline(cin, str);
string result;
string word;
for (char c : str)
{
if (c == ' ')
{
reverse(word.begin(), word.end());
result += word + ' ';
word.clear();
}
else
{
word += c;
}
}
reverse(word.begin(), word.end());
result += word;
cout << result << endl;
}
signed main()
{
solve();
return 0;
}
或者,reverse也行
#include <bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{
std::ios::sync_with_stdio(false), cin.tie(0);
string str;
getline(cin, str);
reverse(str.begin(), str.end());
cout << str << endl;
}
signed main()
{
solve();
return 0;
}
喜欢,就点个赞吧!!