3783 字符串删除经验值:0
题目描述 Description
给出一个字符串,删除它的最后一个字符。
输入描述 Input Description
一行,一个字符串,s
输出描述 Output Description
删除最后一个字符后的字符串
样例输入 Sample Input
abcdef
样例输出 Sample Output
abcde
数据范围及提示 Data Size & Hint
字符串长度不超过100,字符串不包含空格
错误代码:
#include<iostream>
#include<string>
using namespace std;
int main(){
string s,k;
getline(cin,s);
k=s.size();
cout<<s.erase(k-1,k);
return 0;
}
为啥报错
请大佬解答
#include<iostream>
#include<string>
using namespace std;
int main(){
string s,k;
getline(cin,s);
k=s.size();
s.erase(k-1,k);
cout<<s;
return 0;
}
还报错
AC
正文:
亲,这边题目说了字符串无空格,所以不要用getline,直接用cin就行了。字符串什么的可以定义在外边。
因为是删去最后一个字符串,所以你要先求出字符串的长度: int a=字符串.length();
然后用erase(屁话) ,但是,擦除函数的用法是:字符串.erase(起始下标,删除长度);
所以你会报错的原因是 k被你定义成了string型,但括号里一般要填的是int型变量或常数(就是你变量定义错了)
所以要改为:: 字符串.erase(k-1,1);
打字不易,望采纳!