赞
踩
【题目描述】
给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。
【输入】
输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。
【输出】
输出按照题目要求处理后的单词。
【输入样例】
referer【输出样例】
refer
s.substr(start, length)方法:返回一个从指定位置开始,并具有指定长度的子字符串。
参数:
1.start:必选。所需的子字符串的起始位置。字符串中第一个字符的索引为 0。
2.length:可选项。返回的子字符串中包含的字符数。补充:若start的值超过了string的大小,则substr函数会抛出一个out_of_range异常;若start+length的值超过了string的大小,则substr会调整length的值,只拷贝到string的末尾
size()
size()函数是用于计算string对象长度的一个成员函数,它包含在STL中
size()也可返回vector、map对象的长度。注意的是,size()的返回值是unsigned类型的,所以不能和负数比较大小。
输出的结果是-1。
unsigned类型跟负数比较大小,会先将有符号数转换为无符号数再比较大小,会无法预估大小length()
length()函数的使用与size()函数并无区别
- #include<bits/stdc++.h>
- using namespace std;
- int main()
- {
- string s1;
- int len=0;
- cin>>s1;
- len=s1.size();
- if(s1.substr(len-3,len)=="ing")
- {
- cout<<s1.substr(0,len-3);
- }
- else if(s1.substr(len-2,len)=="er"||s1.substr(len-2,len)=="ly")
- {
- cout<<s1.substr(0,len-2);
- }
- return 0;
- }
cin.getline()函数
【函数用法】
接收一个字符串并输出(可含空格)。
【参数详解】
1.cin.getline()函数的完整形式有三个参数:cin.getline(字符数组名,字符个数,结束标志)
注意:若指定参数“字符个数”为n,则利用cout函数输出时只显示字符数组中的前n-1个字符。
原因:字符数组的第n个字符是不可见字符'\0'
2.当第三个参数省略时,系统默认为'\0'
3.简单实例:
cin.getline(str,8,'m'),当输入abcdefghijklmn时,输出abcdefg,因为第8位是不可见字符'\0'
cin.getline(str,8,'e'),当输入abcdefghijklmn时,输出abcd
函数strlen()是C语言的提供的函数。
它包含在#include <string.h>这个头文件中,strlen函数接受的实参是一个字符串数组,返回值是字符串数组的长度,不包括空字符在内,返回的值是一个int类型的整数值。
- #include<bits/stdc++.h>
- using namespace std;
- char s1[33],c1,c2,c3;
- int main()
- {
- int len=0;
- cin.getline(s1,33);
- len=strlen(s1);
- c1 = s1[len-1];
- c2 = s1[len-2];
- c3 = s1[len-3];
- if(c3 == 'i' && c2 == 'n' && c1 == 'g')
- {
- s1[len-3] = '\0';
- }
- else if(c2 == 'e' && c1 == 'r' || c2 == 'l' && c1 == 'y')
- {
- s1[len-2] = '\0';
- }
- cout<<s1;
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。