(C语言)输入一个正整数字符串并将字符串转化为相应的数字。

2024-11-13 04:19:04
推荐回答(5个)
回答(1):

这种态度来学习写代码是不行的!
程序的逻辑自己有没有看过啊?
明显有问题啊
什么老师给的答案,老师给的答案就怎么啦?
老师给的,错了就是错了,先要自己去找问题所在,找不到问题再来问问提
不要动不动就来问,到最后自己还是不会写代码
再者,即使这段代码是对的,也不是一个好的代码,因为很难重用
long cton(const char* str)
{
//这里进行转换操作
return 结果;
}

void main()
{
char str[30]
scanf("%s",str);//输入字符串
long result = cton(str);//调用函数
printf("%ld\n",result);//显示结果
}

说了这些,估计你也不高兴,我也没想拿你的分数,但是希望对你有所触动

回答(2):

正确的结果应该是这样的:

#include
long cton(void)
{ char c;
long s=0;
c=getchar();
while(c>='0'&&c<='9')
{
s=s*10+c-'0';
fflush(stdin); //这里必须清除一下键盘缓冲区的数据,否则循环无法继续下去!
c = getchar(); //用c继续接收输入的字符,直到输入字符不是0-9的数字则结束!
}
return (s);
}
void main()
{ printf("input a line of numeric character:");
printf("%ld\n",cton());
}

回答(3):

#include
long cton(void)
{ char c;
long s=0;
c=getchar();
while(c>='0'&&c<='9')
{s=s*10+c-'0';c=getchar();}//这里少了一句c=getchar();
return (s);
}
void main()
{ printf("input a line of numeric character:");
printf("%ld\n",cton());
getch();
}

回答(4):

你老师的程序只能将一个正整数字符转化为相应的数字,而不是字符串了,char c; c=getchar();
实际接收一个字符了,如果输入字符串,你参考stdlib中的字符串转换函数:atoi(将字符串转换成整型数);atol(将字符串转换成长整型数)等等很多直接转换的函数了。

回答(5):

input a line of numeric character:321

#include
long cton(void)
{ char c;
long s=0;
c=getchar();
while(c>='0'&&c<='9')
{
s=s*10+c-'0';
c=getchar(); /*少一条语句,所以陷入死循环了*/
}
return (s);
}
void main()
{ printf("input a line of numeric character:");
printf("%ld\n",cton());
}
现在你可以试试,只要最后一个输入字符不是数字就可以退出并显示数字了