string
写几个常用的
输入方式
1 | string s1; |
比较方式
1 | string s1; |
插入
1 | str.insert(pos,str2); //在下标为pos的字符前插入string类型的对象str2的副本 |
删除
1 | str.erase(pos,count); |
返回子串
1 | str.substr(pos,count); |
判空
1 | str.empty(); |
查找
1 | string s1="asdfghjkl" |
赋值
1 | string s1="abc"; |
描述
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入
in
#include
int main()
{
printf(“ Hi “);
}
样例输出:
#clude
tma()
{
prtf(“Hi”);
}
匹配串复制一份,模式串和复制的串全部转换为大写或者小写进行匹配,用find找到位置,在匹配串和复制串中都进行删除
1 |
|
这里用了gets(str)进行了字符串的输入,这里做一下gets与scanf的区别
- gets依次读取遗留在输入缓存中的数据,直至遇到换行符,并将换外的所有字符保存在字符数组中(后面加’\0’),同时从输入缓冲中去除该换行符(‘\n’),所以可以用while(gets(str))一行一行的读取数据(换行符被去除了)。
- scanf(“%s”)读取输入缓存中的数据,直至遇到空格或换行,但scanf不会把空格或换行从输入缓存中移除,从而导致后续的gets函数不能正常使用。
如:1
2
3
4
5scanf("%s"str1); //输入aabb并回车
gets(str2); //输入ccdd,但str2读取的是'\n'
scanf("%s",str1); //输入aa空格bb
gets(str2);//此时str1="aa",str2=" bb"(前面有个空格)