字符串输入输出相关
string
=,assign() //赋以新值
swap() //交换两个字符串的内容
+=,append(),push_back() //在尾部添加字符
insert() //插入字符
erase() //删除字符
clear() //删除全部字符
replace() //替换字符
+ //串联字符串
==,!=,<,<=,>,>=,compare() //比较字符串
size(),length() //返回字符数量
max_size() //返回字符的可能最大个数
empty() //判断字符串是否为空
capacity() //返回重新分配之前的字符容量
reserve() //保留一定量内存以容纳一定数量的字符
[ ], at() //存取单一字符
>>,getline() //从stream读取某值
<< //将谋值写入stream
copy() //将某值赋值为一个C_string
c_str() //将内容以C_string返回
data() //将内容以字符数组形式返回
substr() //返回某个子字符串
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <string> #include <iostream> int main( )//substr(开始位置,截取长度) { using namespace std; string str1 ("Heterological paradoxes are persistent."); cout << "The original string str1 is: \n " << str1<<endl; basic_string <char> str2 = str1.substr ( 6, 7 ); cout << "The substring str1 copied is: " << str2<< endl; }
查找函数
begin() end() //提供类似STL的迭代器支持
rbegin() rend() //逆向迭代器
get_allocator() //返回配置器
reverse()//交换前后顺序 #include <algorithm>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <iostream>//实例题目在一堆串里面找出一个最长公共串 #include <string>//,正反都可以,暴力搜,输出最长公共串长度 #include <algorithm>//STL reverse函数 using namespace std; int main() { int t, n, i, j, k; string s[102]; int sm, mlen = 200, max; cin >> t; while(t--) { cin >> n; for(i = 0; i < n; i++) { cin >> s[i]; if(mlen > s[i].size()) { sm = i; mlen = s[i].size(); } } max = 0; for(i = s[sm].size(); i > 0; i--) for(j = 0; j < s[sm].size() - i + 1; j++) { string s1, s2; s1 = s[sm].substr(j, i); s2 = s1; reverse(s2.begin(), s2.end());//反转 for(k = 0; k < n; k++) if(s[k].find(s1, 0) == -1 && s[k].find(s2, 0)) break; if(k == n && max < s1.size()) max = s1.size(); } cout << max << endl; } return 0; }
char
strcpy()函数
strcat()函数
strlen()函数
strcmp()函数
strlwr()函数:大写变为小写
strupr()函数,小写变为大写