你是否像我一样,
是一名小小蒟蒻——
判断不了类型、反转不会和去前导零去不干净(没错,就是我)。
那么——
你们将认识四个新函数——
find(),reverse(),stoll()和to_string()。
find(),即寻找函数,需搭配string类使用。
#include<iostream>
#include<cstdio>
using namespace std;
string s="a___a____a";
int main(){
printf("%d\n",s.find('a'));//输出a第一次出现的位置下标
printf("%d\n",s.find('a',1));//输出从下标1开始,a第一次出现的位置下标
printf("%d\n",s.find('a',6));//输出从下标6开始,a第一次出现的位置下标
printf("%d",s.find('b'));//若找不到,则输出-1
return 0;
}
0
4
9
-1
N.find('.');
返回的就是小数点的下标。
if(N.find('.')!=-1)
就是判断是否为小数。
reverse(),即反转函数,头文件为:
#include<algorithm>
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
string s="a___a____a";
int main(){
reverse(s.begin(),s.end());
cout<<s;
return 0;
}
a____a___a
(不要问为什么不用stoi,问就是作者就是这样int存不下而RE的)
stoll(),即string类转long long类,头文件为:
#include<string>
这还不是最主要的,他还可以去前导0!!!
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
string s1="00005",s2="00000";
int main(){
printf("%lld\n%lld",stoll(s1),stoll(s2));
return 0;
}
5
0
to_string()的存在即是为了对付小数去后导0的情况,头文件跟stoll一样,为:
#include<string>
既然是先反转再去前导0,那么为什么不能反过来?
即:先去前导0,再去旋转。
那么string转成了long long,再怎么转回string来反转呢?
to_string()就是这样恰到好处:
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
string s="0000506";
int main(){
s=to_string(stoll(s));
reverse(s.begin(),s.end());
cout<<s;
return 0;
}
605
(相信大家在了解了这四个函数之后,一定能AC——)