通俗题解||字符串转整数
2024-07-01 21:22:10
发布于:广东
33阅读
0回复
0点赞
题目分析:
从字符串中提取所有数字,组合成一个整数,要求没有前导零。
我们可以设置一个bool来让前导零不出现。
唯一坑点:
当所有字符串中的数字全部为0或没有数字时,此时遍历后不会有输出,要特判输出0。
AC代码1:用string和for循环
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
bool flag=false;//可能有前导零,flag初始为false
for(int i=0;i<s.size();i++){//遍历s的每一位字符
if(s[i]>='1'&&s[i]<='9'){
cout<<s[i];//是数字,输出
flag =true;//没有前导零了,flag置为true(也代表有输出)
}
else if(s[i]=='0'&&flag==true){//是0且没有前导零时,输出
cout<<s[i];
}
}
if(flag==false){//一直没有输出,特判0
cout<<'0';
}
return 0;
}
AC代码2:用char和while循环
#include<bits/stdc++.h>
using namespace std;
int main(){
bool flag=false;//可能有前导零,flag初始为false
char c;//没有前导零了,flag置为true(也代表有输出)
while(cin>>c){//循环一次后输入下一位字符,知道没有输入为止
if(c>='1'&&c<='9'){
cout<<c;//是数字,输出
flag =true;
}
else if(c=='0'&&flag==true){//是0且没有前导零时,输出
cout<<c;
}
}
if(flag==false){//一直没有输出,特判0
cout<<'0';
}
return 0;
}
这里空空如也
有帮助,赞一个