c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做?相关的知识,希望对你有一定的参考价值。
字符串转整数可以有两种方法:
1.使用c语言自带的库函数:atoi。
函数原型:int atoi(const char *nptr);
功能:把字符串转成整型数。
例如:
#include <stdlib.h>#include <stdio.h>
int main(void)
int n;
char *str = "12345";
n = atoi(str);
printf("int=%d\\n",n);
return 0;
/*
输出:
int = 12345
*/
2.可以自己编写一个转换函数:
#include <stdio.h>#include <stdlib.h>
int atoi(char *s)
int t=0;
while(*s)
t=t*10+*s-\'0\';
s++;
return(t);
int main ()
char a[]="12345";
int n = atoi(a);
printf("n=%d ",n);
return 0;
/*
输出:
n = 12345
*/ 参考技术A char c;
int n;
c = getchar();
n = c;
printf(%d,n);
/*也可以直接输出c*/
printf(%d,c);
如果要数字对应输出就这样写
char c;
int n;
c = getchar();
n = c-48;/*48是0的ascii码值*/
printf(%d,n); 参考技术B 我只知道数据类型能相互转换,但貌似字符和整形无法用一句程序转换吧,如果你想写多句程序来转换,可直接用switch语句,对'0'-'9'进行判断,直接输出0-9,不知道这样行不行的通。追问
不行吧
追答我是新手,只知道stdio、math,你可以去其他库里找找,有没有直接转的语法,要不数字量庞大的话,确实没法搞。0-9还好,没多少句,如果所有数字就不行了。
参考技术C #include追问。。。。
追答转换下数据类型就可以啦
追问怎么转?可以写来吗?
c语言输入数字转换成2进制字符串原理
一般在程序里面写成除二取余数的方法来得到。跟二进制的数的取法手工算法一样。任意数除2以后,如果有小数点,就在堆栈中写进一个1,没有小数就写0。然后除完以后,把堆栈的数倒取出来,就成了该数字的二进制。
#include <iostream.h>
void divideData(const float number, int &integer, float &decimal); //分离出整数和小数部分.
void printBinaryForInteger(int &integer); //打印整数部分的二进制形式.
void printBinaryForDecimal(float &decimal); //打印小数部分的二进制形式.
int main()
float number;
int integer;
float decimal;
cout<<"Please input a decimal number for being converted: ";
cin>>number;
cout<<"\nThe binary number converted from your input "<<number<<" is: ";
divideData(number, integer, decimal);
printBinaryForInteger(integer);
if (integer==0) cout<<"0";
cout<<".";
printBinaryForDecimal(decimal);
cout<<endl;
return 1;
void divideData(const float number, int &integer, float &decimal)
integer = (int)number;
decimal = number - (float)integer;
void printBinaryForInteger(int &integer)
int k,a=0;
int b[32];
while (integer!=0)
k=integer%2;
b[a++]=k;
integer=integer/2;
while (a>0)
cout<<b[--a];
void printBinaryForDecimal(float &decimal)
int i=0;
int count=0;
int a[8]=0;
while (count<6) //小数部分取6位(也可用符号常量设置).
decimal*=2;
a[count++]=(int)decimal;
if (decimal>=1.0)
decimal-=1.0;
while (i<6)
cout<<a[i++];
//用于C编译器时略作修改;只考虑了输入数为正数. 参考技术A 一种方法是模拟人计算二进制的方法,另外一种是利用位运算的方法
以上是关于c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做?的主要内容,如果未能解决你的问题,请参考以下文章