STL之string
2016-02-08 12:57
211 查看
/*
标准模板库(STL)
队列queue,堆,堆栈,vector,string,map
#include <string> //注意区别于string.h
using namespace std;//使用标准命名空间
string s; //定义string对象s
cin >> s;//输入string对象
或者
char str[] = "test";
s = str;
s += 'c';//在已经存在string对象s后面添加一个字符
s += "string";//在其后面添加一个字符串
string b = "class";
s += b;//在其后面添加一个string对象
string b = "class"; //判断两个字符串是否相同
string a = "two";
if(a == b){
cout << a;
}
string b = "class"; //判断两个字符串间的大小关系
string a = "two";
if(a <= b){
cout << a;
}
string c = "cout"; //输出一个string对象保存的字符串
cout<<c<<endl;
或者
string c = "cout";
printf("%s\b",c.c_str());
for(int i=0;i<s.size();i++){//对s每个字符进行遍历
char c = s[i];
}
s.erase(10,8);//从string对象s中删除从s[10]开始的8个字符,即s[10]到s[17]
string a = "asdfsdfadfafd";//在a中startpos位置开始查找b字符串,返回第一次出现的下标,否则,返回一个常数string::npos
string b = "fadf";//其中b也可以是字符数组
int startpos = 0;
int pos = a.find(b.startpos);
string a = "AAAA";//在a中下标为2的字符前插入b字符串
string b = "BBB";//b也可为字符数组
a.insert(2,b);
cout<<a<<endl;
*/
/*
题目1168:字符串的查找删除
题目描述:
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入:
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出:
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入:
in
#include
int main()
{
printf(" Hi ");
}
样例输出:
#clude
tma()
{
prtf("Hi");
}
提示:
注:将字符串中的In、IN、iN、in删除。
*/
#include <stdio.h>
#include <string>
#include <iostream>
#include <ctype.h>
using namespace std;
int main(){
char str[101];
gets(str);//输入短字符串
string a = str;//将其保存在a中
for(int i = 0;i < a.size(); i++){
a[i] = tolower(a[i]);
}//将a中的字符全部改成小写
while(gets(str)){//输入长字符串,gets读入一行数据,直到出现换行符,并清除该换行符
//而scanf("%s",str)读取时,直到出现空格或者换行符为止,并不删除空格或者换行符
//所以gets和scanf一般不混用,容易出现错误
string b = str, c = b;//将字符串保存至b,c
for(int i = 0;i<b.size();i++){
b[i]=tolower(b[i]);
}//将b中字符全部改写成小写,以便匹配
int t = b.find(a,0);//在b中查找a的位置
while(t != string ::npos){//若查找成功,则重复循环
c.erase(t,a.size());//删除c中相应位置字符,c为原串
b.erase(t,a.size());//删除b中相应位置字符,b为改为小写字母的串
t = b.find(a,t);//继续查找b中下一个出现字符串a的位置
}
t = c.find(' ',0);//查找c中空格
while(t != string :: npos){
c.erase(t,1);
t = c.find(' ',0);
}//删除c中所有空格
cout<<c<<endl;//输出
}
return 0;
}
标准模板库(STL)
队列queue,堆,堆栈,vector,string,map
#include <string> //注意区别于string.h
using namespace std;//使用标准命名空间
string s; //定义string对象s
cin >> s;//输入string对象
或者
char str[] = "test";
s = str;
s += 'c';//在已经存在string对象s后面添加一个字符
s += "string";//在其后面添加一个字符串
string b = "class";
s += b;//在其后面添加一个string对象
string b = "class"; //判断两个字符串是否相同
string a = "two";
if(a == b){
cout << a;
}
string b = "class"; //判断两个字符串间的大小关系
string a = "two";
if(a <= b){
cout << a;
}
string c = "cout"; //输出一个string对象保存的字符串
cout<<c<<endl;
或者
string c = "cout";
printf("%s\b",c.c_str());
for(int i=0;i<s.size();i++){//对s每个字符进行遍历
char c = s[i];
}
s.erase(10,8);//从string对象s中删除从s[10]开始的8个字符,即s[10]到s[17]
string a = "asdfsdfadfafd";//在a中startpos位置开始查找b字符串,返回第一次出现的下标,否则,返回一个常数string::npos
string b = "fadf";//其中b也可以是字符数组
int startpos = 0;
int pos = a.find(b.startpos);
string a = "AAAA";//在a中下标为2的字符前插入b字符串
string b = "BBB";//b也可为字符数组
a.insert(2,b);
cout<<a<<endl;
*/
/*
题目1168:字符串的查找删除
题目描述:
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入:
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出:
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入:
in
#include
int main()
{
printf(" Hi ");
}
样例输出:
#clude
tma()
{
prtf("Hi");
}
提示:
注:将字符串中的In、IN、iN、in删除。
*/
#include <stdio.h>
#include <string>
#include <iostream>
#include <ctype.h>
using namespace std;
int main(){
char str[101];
gets(str);//输入短字符串
string a = str;//将其保存在a中
for(int i = 0;i < a.size(); i++){
a[i] = tolower(a[i]);
}//将a中的字符全部改成小写
while(gets(str)){//输入长字符串,gets读入一行数据,直到出现换行符,并清除该换行符
//而scanf("%s",str)读取时,直到出现空格或者换行符为止,并不删除空格或者换行符
//所以gets和scanf一般不混用,容易出现错误
string b = str, c = b;//将字符串保存至b,c
for(int i = 0;i<b.size();i++){
b[i]=tolower(b[i]);
}//将b中字符全部改写成小写,以便匹配
int t = b.find(a,0);//在b中查找a的位置
while(t != string ::npos){//若查找成功,则重复循环
c.erase(t,a.size());//删除c中相应位置字符,c为原串
b.erase(t,a.size());//删除b中相应位置字符,b为改为小写字母的串
t = b.find(a,t);//继续查找b中下一个出现字符串a的位置
}
t = c.find(' ',0);//查找c中空格
while(t != string :: npos){
c.erase(t,1);
t = c.find(' ',0);
}//删除c中所有空格
cout<<c<<endl;//输出
}
return 0;
}
相关文章推荐
- YTU 2641: 填空题:静态成员---计算学生个数
- Python成长之路第二篇(1)_数据类型内置函数用法
- [5] CMake总结 - 2 基本命令
- YTU 2640: 编程题:运算符重载---矩阵求和
- YTU 2639: 改错题:类中私有成员的访问
- 需求 - 17 - “录制圈”
- YTU 2636: B3 指向基类的指针访问派生类的成员函数
- YTU 2635: P4 游戏中的Human角色
- 椭圆形的窗体
- YTU 2634: E3 继承了,成员函数却不可访问
- hdu 5620
- YTU 2633: P3 数钱是件愉快的事
- YTU 2632: B2 友元光顾
- YTU 2631: B1 能存各种类型数据的Store类
- Codeforces 625 D Finals in arithmetic
- YTU 2630: E2 驾驭const
- YTU 2629: E1 一种颜色,三个分量
- cocos2dx3.2 异步加载和动态加载
- 哈理工 1170 语法检查-括号匹配【stack应用】【水题~】
- YTU 2626: B 统计程序设计基础课程学生的平均成绩