字符转换中的前导0问题
题目:提取字符串中的数字字符0~9 将其转化为一个整型输出#include<stdio.h>
int main()
{
char ch;
int n=0;
while(1)
{
scanf("%c",&ch);
if(ch == '\n'){ break;}
if( ch >= '0' && ch <= '9')
{
n =(int) ch - 48;
printf("%d",n);
}
}
return 0;
}
提交之后提示我没有前导0,想问前导0是什么,改怎么输出?
把题目地址发一下 本帖最后由 jackz007 于 2022-11-24 18:25 编辑
别人的意思恐怕恰恰是你的代码不能过滤前导 0 吧?
#include<stdio.h>
int main()
{
char ch ;
int n = 0 ;
while(1) {
scanf("%c" , & ch) ;
if(ch >= '0' && ch <= '9') {
if(n || ch != '0') {
printf("%c" , ch) ;
n ++ ;
}
} else {
if(n) break ;
}
}
if(n) printf("\n") ;
}
编译运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
000abc00100000asdfs3456dfgdfa899065
100000
D:\\C> 本帖最后由 两手空空儿 于 2022-11-24 20:09 编辑
题目:提取字符串中的数字字符0~9 将其转化为【一个整型】输出
你和题目的要求不一样
要求应该是
比如输入 akldg123ksdgh
代码中应抓到123,并
n = 123
输出n
#include<stdio.h>
int main()
{
char ch;
int n=0;
while(1)
{
scanf("%c",&ch);
if(ch == '\n'){ break;}
if( ch >= '0' && ch <= '9')
{
n =(int) ch - 48; //这里改成 n = n *10 + (ch - '0') ;
//printf("%d",n);
}
}
printf("%d",n); ////////////
return 0;
} 两手空空儿 发表于 2022-11-24 20:05
题目:提取字符串中的数字字符0~9 将其转化为【一个整型】输出
你和题目的要求不一样
要求应该是
非常感谢
页:
[1]