您的位置:首页 > 其它

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: