1.c语言中,将字符转换为十进制的程序
字符转为10进制 用sscanf或者用atoi均可
以字符串中, 本身为10进制字符串为例
用sscanf程序如下:
#include
int main()
{
char s[20];
int i;
scanf("%s",s);
sscanf(s, "%d",&i);
printf("%d\n",i);
return 0;
}
2.将字符串转换为十进制整数(用C语言)
应该就是这样
#include
#include
int main( )
{
char data[ 1000 ];
int i, t;
scanf("%s", data);
for ( i = 0; i < strlen( data ) - 1; i++ )
{
if ( data[ i ] == '#' )
{
printf("%d\n", t);
t = 0;
}
else
{
if ( data[ i ] >= '0' && data[ i ] <= '9' )
t = t * 10 + data[ i ] - '0';
}
}
return 0;
}
3.C语言如何将一个数字组成的字符串转变成十进制数
办法很多,提供三种供参考。
一、直接使用库函数atoi将数字字符串转换成十进制整数。代码如下:
#include "stdio.h"
#include "stdlib.h"//调用库函数atoi要包含这个文件
int main(int argc,char *argv[]){
char a[]="478167831";
printf("%d\n",atoi(a));//直接调用atoi将a转换为十进制整数
return 0;
}二、用库函数sscanf直接将数组中的数字字符串读入十进制整型变量。代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
char a[]="478167831";
int x;
sscanf(a,"%d",&x);//调用sscanf,读入时自动转换为int型并由%d控制以十进制赋给变量x
printf("%d\n",x);//输出
return 0;
}三、自行编写转换代码:
#include "stdio.h"
int main(int argc,char *argv[]){
char a[]="478167831";
int x,i;
for(x=i=0;a[i];(x*=10)+=a[i++]-'0');//字符与数字的关系是"字符值-'0'==同名数字"
printf("%d\n",x);//输出
return 0;
}上述三代码的输出结果如下图:
4.c语言模拟输入函数,将数字字串符转为十进制整数
n=n*10+str[i]-'0';第十二句不是0=0*10+str[0]-'0';
是n = 0 * 10 + str[0]-'0'; str[0] - '0'是数字3.
你输入的数字3当字符处理ascll码是51,字符'0'的ascll是48,所以相减得数字3即12句为 n = 0 * 10 + 3;
我输入123321和456转后出来的数没变!这到底是将什么转成什么呀??
你用%d能输出那串数字说明你已经做了转换了,你可是输入进去的字符,转换出来的是数字
5.C语言 将八进制字符转成十进制整数
n = *p - '0';// 这一行已经把字符串的第一个字符处理了,所以下面是从下一个字符开始
p++; //所以要自加1转化的过程是这样子的:
假设 s = '123'
fun(s)的运行过程如下:
n = '1' - '0'; //n = 1
p++; //*p='2'
n = n*8+ *p - '0'; // n = n*8 + '2'-'0' = 1*8+2 = 10
p++;
n = n*8+ *p - '0'; // n = n*8 + '3'-'0' = 10*8+3 = 83, 此时
p++; //此时*p=0;所以循环退出,返回n,结果就是83
标签:肇庆新区,