文档库 最新最全的文档下载
当前位置:文档库 › C语言字符串转换为数字的方法

C语言字符串转换为数字的方法

C语言字符串转换为数字的方法

C语言字符串转换为数字的方法

大家知道C语言字符串转换为数字吗?C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)的数字。以下是用

atoi()函数将字符串转换为整数的一个例子:

?复制代码代码如下:

?# include

?# include

?void main (void) ;

?void main (void)

?{

?int num;

?char * str = “100”;

?num = atoi(str);

?printf(“The string 'str' is %s and the number 'num' is %d. \n”,str, num);

?}

?atoi()函数只有一个参数,即要转换为数字的字符串。atoi()函数的返回值就是转换所得的整型值。

?下列函数可以将字符串转换为数字:

?函数名作用

?atof() 将字符串转换为双精度浮点型值

?atoi() 将字符串转换为整型值

?atol() 将字符串转换为长整型值

C语言课程设计--进制转换

C 语言 课程设计报告 设计题目:进制转换 学生姓名: 学生学号:20101010110 专业班级:数学与应用数学一班 学院名称:数学与计量经济学院 同组人姓名: 指导老师: 2011年6 月16 日

目录 1.需求分析........................................................1 1.1问题描述....................................................1 1.2输入数据的要求..............................................1 1.3输出数据的要求..............................................1 1.4开发环境和工具..............................................1 1。.5成员分工...................................................1 2.总体设计........................................................2 2.1设计思路...................................................3 2。.2模块结构图...............................................4 3.详细设计........................................................7 3.1数据类型的定义...............................................7 3.2总的实现......................................................8 4.系统测试........................................................9 5.总结...........................................................·10 6.参考文献及附录............................................11

sql中将数字转换为字符串—STR()

sql 中将数字转换为字符串的最简单方法 2010年01月22日星期五下午08:04 STR 由数字数据转换来的字符数据。 语法 STR (float_expression[ ,length[ ,decimal] ] ) 参数 float_expression 是带小数点的近似数字(float) 数据类型的表达式。 length 是总长度,包括小数点、符号、数字或空格。默认值为10。 decimal 是小数点右边的位数。 返回类型 char 注释 如果为STR 提供length和decimal参数值,则这些值应该是正数。在默认情况下或者小数参数为0 时,数字四舍五入为整数。指定长度应该大于或等于小数点前面的数字加上数字符号(若有)的长度。短的float_expression在指定长度内右对齐,长的float_expression则截断为指定的小数位数。例如,STR(12,10) 输出的结果是12,在结果集内右对齐。而STR(1223, 2) 则将结果集截断为**。可以嵌套字符串函数。 说明若要转换为Unicode 数据,请在CONVERT 或CAST 转换函数内使用STR。示例 A. 使用STR 下例将包含五个数字和一个小数点的表达式转换为有六个位置的字符串。数字的小数部分四

舍五入为一个小数位。 SELECT STR(123.45, 6, 1) GO 下面是结果集: ------ 123.5 (1 row(s) affected) 当表达式超出指定长度时,字符串为指定长度返回**。 SELECT STR(123.45, 2, 2) GO 下面是结果集: -- ** (1 row(s) affected) 即使数字数据嵌套在STR内,结果集也是带指定格式的字符数据。SELECT STR (FLOOR (123.45), 8, 3) GO 下面是结果集: -------- 123.000 (1 row(s) affected) B. 使用STR 和CONVERT 函数

C语言实现任意进制转换

#include #include #include void dtox(double num,int jz) { char xnum[100]; int dnum=(int) num; int i=0,j=0,e = 0; while(dnum>=jz) { xnum[j++]=dnum%jz+48; dnum=dnum/jz; } xnum[j] = dnum+48; for(i = j;i>=0;i--){ printf("%c",xnum[i]); } if(dnum - num != 0){ printf("."); num = num - (int)num; do { e++; printf("%c",(int)(num*jz)+48); num = num*jz-(int)(num*jz); if(num == 0)break; } while(e<20); } } double xtod(char num[],int jz) { double dnum = 0; int i,j,k=0,n=0,b; for(i=0;;i++) { if(num[i]=='\0')break; else n++; if(num[i]=='.'){j=i;k=1;} } for(i=j-1;i>=0;i--) { dnum =dnum + (double)(num[j-i-1]-48)*pow(jz,i); }

if(k==1) { for(i=j+1;i

js 字符串转换数字

js 字符串转换数字 方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这 两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。一些示例如下: parseInt("1234blue"); //returns 1234 parseInt("0xA"); //returns 10 parseInt("22.5"); //returns 22 parseInt("blue"); //returns NaN parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数 指定的,示例如下: parseInt("AF", 16); //returns 175 parseInt("10", 2); //returns 2 parseInt("10", 8); //returns 8 parseInt("10", 10); //returns 10 如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地

得到八进制的值。例如: parseInt("010"); //returns 8 parseInt("010", 8); //returns 8 parseInt("010", 10); //returns 10 parseFloat()方法与parseInt()方法的处理方式相似。 使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。 下面是使用parseFloat()方法的示例: parseFloat("1234blue"); //returns 1234.0 parseFloat("0xA"); //returns NaN parseFloat("22.5"); //returns 22.5 parseFloat("22.34.5"); //returns 22.34 parseFloat("0908"); //returns 908 parseFloat("blue"); //returns NaN 2. 强制类型转换 还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。ECMAScript中可用的3种强制类型转换如下: Boolean(value)——把给定的值转换成Boolean型; Number(value)——把给定的值转换成数字(可以是整数或浮点数);String(value)——把给定的值转换成字符串。

十六进制数转换成十进制数C语言

十六进制数转换成十进制数C语言 程序代码: #include #include #include /*求字符串长度函数*/ int strlengh(char *s) { int i; for(i=0;s[i]!='\0';i++); return i; } /*16进制转10进制函数*/ double tran(char *s) { int len=strlengh(s);/*求输入的字符串的长度*/ int ss[100] ;/*用于存放对字符的转换如f:15*/ int i; double n=0.0; /*对字符进行处理,将其每一位转换为整数,之后运算进行处理*/ for(i=0;i

C语言字符串与整数转换的函数

C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转换为字符串的一个例子: # include # include void main (void); void main (void) { int num = 100; char str[25]; itoa(num, str, 10); printf("The number 'num' is %d and the string 'str' is %s. \n" , num, str); } itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数。在上例中,转换基数为10。 下列函数可以将整数转换为字符串: ---------------------------------------------------------- 函数名作用 ---------------------------------------------------------- itoa() 将整型值转换为字符串 itoa() 将长整型值转换为字符串 ultoa() 将无符号长整型值转换为字符串 ---------------------------------------------------------- 请注意,上述函数与ANSI标准是不兼容的。能将整数转换为字符串而且与ANSI标准兼容的方 法是使用sprintf()函数,请看下例:

#include # include void main (void); void main (void) { int num = 100; char str[25]; sprintf(str, " %d" , num); printf ("The number 'num' is %d and the string 'str' is %s. \n" , num, str); } 在将浮点型数字转换为字符串时,需要使用另外一组函数。以下是用fcvt()函数将浮点型值转换为字符串的一个例子: # include # include void main (void); void main (void) { double num = 12345.678; char * sir; int dec_pl, sign, ndigits = 3; /* Keep 3 digits of precision. * / str = fcvt(num, ndigits, &dec-pl, &sign); /* Convert the float to a string. * / printf("Original number; %f\n" , num) ; /* Print the original floating-point

进制转换C语言的实现

索引 一、算法分析 二、数据结构: 1、头文件 2、栈的关键操作 三、关键程序: 1、十进制进制转换为其它 2、其它进制转换为十进制 一、算法分析 实现进制转换需要编个函数,每一函数完成相应进制的转换,下面是各个进制之间转换的数学方法的算法。 十进制转二进制: 十进制数转换成二进制数,是一个连续除2的过程;把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0.最后将所有余数倒序排列,得到数就是转换结果。 例如: 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 所以302转换为2进制,结果:100101110

十进制转八进制: 十进制数转换成八进制的方法和转换为二进制的方法类似,唯一变化:除数由2变成8。 例如: 120/8=15余0 15/8=1余7 1/8=0余1 所以120转换为8进制,结果为:170 十进制转十六进制: 十进制数转换成十六进制数的方法和转换为二进制的方法类似,唯一变化:除数由2变成16。 不过,十六进制数:(10~15)是用英文大写字母(A~F)表示。例如: 123/16=7余11 所以123转换为16进制,结果为:7B 二进制转十进制: 二进制数转换为十进制数按权展开,第0位的权值是2的0次方,第1位的权值是2的1次方〃〃〃〃〃〃 例如: 1010转换成十进制数:

第0位:0*2^0=0 第1位:1*2^1=2 第2位:0*2^2=0 第3位:1*2^3=8 所以转换为10进制数为:0+2+0+8=10 二进制转八进制: 利用421,从后往前每三位一组,缺位除补0,然后按十进制方法进行转换。 例如: (11001) 001=1 011=3 然后将结果按从下往上顶顺序书写:31 二进制转十六进制: 二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算;利用8421,对于任意一个4位的二进制数,都可以很快算出它对应的10进制值。 例如: 1111=8+4+2+1=15 又因为十六进制数:10~15用大写字母A~F表示,所以15为F。

C语言中各进制字符串转换成数字

在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现 相关函数: atof, atoi, atol, strtod, strtoul 表头文件: #include 定义函数: long int strtol(const char *nptr, char **endptr, int base); 函数的解释说明 这个函数会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如’0x’前置字符则会使用16进制做转换、遇到’0’前置字符而不是’0x’的时候会使用8进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回;若参数endptr为NULL,则会不返回非法字符串。 strtol是atoi的增强版 主要体现在这几方面: 1.不仅可以识别十进制整数,还可以识别其它进制的整数,取决于base参数,比如strtol("0XDEADbeE~~", NULL, 16)返回0xdeadbee的值,strtol("0777~~", NULL, 8)返回0777的值。 2.endptr是一个传出参数,函数返回时指向后面未被识别的第一个字符。例如char *pos; strtol("123abc", &pos, 10);,strtol返回123,pos指向字符串中的字母a。如果字符串开头没有可识别的整数,例如char *pos; strtol("ABCabc", &pos, 10);,则strtol返回0,pos指向字符串开头,可以据此判断这种出错的情况,而这是atoi处理不了的。 3.如果字符串中的整数值超出long int的表示范围(上溢或下溢),则strtol返回它所能表示的最大(或最小)整数,并设置errno为ERANGE,例如strtol("0XDEADbeef~~", NULL, 16)返回0x7fffffff并设置errno为ERANGE 将字符串a,b,c 分别采用10,2,16进制转换成数字 ------------------------------------------------ #include #include int main() { char a[] = "100"; char b[] = "100"; char c[] = "0x11"; int x, y, z; x = strtol( a, NULL, 10 ); y = strtol( b, NULL, 2 ); z = strtol( c, NULL, 16 ); printf( "x = %d\n", x ); printf( "y = %d\n", y ); printf( "z = %d\n", z );

最新C任意进制转换程序

C任意进制转换程序 C语言写的一个任意进制转换的程序,不使用库提供的转换函数. / scale.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include #include #define WIDTH 10 #define DATAWIDTH 50 #define MAX 4294967295 #define CONST_2 2 #define CONST_3 3 #define CONST_8 8 #define CONST_9 9 #define CONST_10 10 #define CONST_16 16 #define CHAR_0 '0' #define CHAR_9 '9' #define CHAR_A 'A' #define CHAR_a 'a'

#define CHAR_Z 'Z' #define CHAR_SPACE ' ' #define STRING_0 "0" #define STRING_Z "Z" bool Scale(); bool GetSourceScale(int * scale_in); bool GetObjectScale(int * scale_out); double OtherToDeci(int scale_in,char inputdata[]); void DeciToOther(unsigned long deci,int scale_out,char outputdata[]); bool GetData(char data[],int CONCOUNT,int flg); bool GetScale(char temp[]); bool GetSource(int in_scale,char inputdata[]); void ScaleChange(int scale_in,char inputdata[],int scale_out,char outputdata[]); void CleanScreen(); int _tmain(int argc, _TCHAR* argv[]) { int flg = 0; char cs[WIDTH]; memset(cs,0x00,sizeof(cs)); while(1) { printf("-----------------------------------------------------------------\n" ); printf(" Data Transform Between Two Scales \n"); printf(" ----------------------------------------\n"); /*进制转换主函

(C语言)10进制转换2,8,16进制

(C语言)10进制转换2,8,16进制 作者:vinseven #include"stdio.h" #include"conio.h" #include"malloc.h" #include"windows.h" #define ElemType int void menu(); void TenToTwo(); void TenToEight(); void TenToSixteen(); void InitStack(struct sNode **HS); void Push(struct sNode **HS,ElemType x); ElemType Pop(struct sNode **HS); ElemType Peek(struct sNode **HS); int EmptyStack(struct sNode **HS); void ClearStack(struct sNode **HS); int ten;/*要输入的10进制数*/ int x;/*把将要插入到栈中的元素暂时存进x 中*/ struct sNode hs;

struct sNode { ElemType data; struct sNode *next; }; void main() { menu(); getch(); } void menu() { char choice; int flag=1; while(1) { printf("\n\t\t\t________________________\n\n\n"); printf("\t\t\t 1,10进制转换2进制\n\n\n"); printf("\t\t\t 2,10进制转换8进制\n\n\n"); printf("\t\t\t 3,10进制转换16进制\n\n\n"); printf("\t\t\t 0,退出\n\n\n");

java 数字转 字符串 互相转换

各种数字类型转换成字符串型: String s = String.valueOf( value); // 其中 value 为任意一种数字类型。字符串型转换成各种数字类型: String s = "169"; byte b = Byte.parseByte( s ); short t = Short.parseShort( s ); int i = Integer.parseInt( s ); long l = Long.parseLong( s ); Float f = Float.parseFloat( s ); Double d = Double.parseDouble( s ); 数字类型与数字类对象之间的转换: byte b = 169; Byte bo = new Byte( b ); b = bo.byteValue(); short t = 169; Short to = new Short( t ); t = to.shortValue(); int i = 169; b = bo.byteValue(); short t = 169; Short to = new Short( t ); t = to.shortValue(); int i = 169; Integer io = new Integer( i ); i = io.intValue(); long l = 169; Long lo = new Long( l ); l = lo.longValue(); float f = 169f; Float fo = new Float( f ); f = fo.floatValue(); double d = 169f;

字符串数字转换

1、字符串、数字转换。 atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) strtod(将字符串转换成浮点数) strtol(将字符串转换成长整型数) strtoul(将字符串转换成无符号长整型数) toascii(将整型数转换成合法的ASCII 码字符) toupper(将小写字母转换成大写字母) tolower(将大写字母转换成小写字母) atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时 ('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。 返回值返回转换后的浮点型数。 附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。 范例 /* 将字符串a 与字符串b转换成数字后相加*/ #include main() { char *a=”-100.23”; char *b=”200e-2”; float c; c=atof(a)+atof(b); printf(“c=%.2f\n”,c); }

执行 c=-98.23 atoi(将字符串转换成整型数) 相关函数 atof,atol,atrtod,strtol,strtoul 表头文件 #include 定义函数 int atoi(const char *nptr); 函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时 ('\0')才结束转换,并将结果返回。 返回值返回转换后的整型数。 附加说明 atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。 范例 /* 将字符串a 与字符串b转换成数字后相加*/ #include mian() { char a[]=”-100”; char b[]=”456”; int c; c=atoi(a)+atoi(b); printf(c=%d\n”,c); } 执行 c=356 atol(将字符串转换成长整型数) 相关函数 atof,atoi,strtod,strtol,strtoul 表头文件 #include 定义函数 long atol(const char *nptr); 函数说明 atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时 ('\0')才结束转换,并将结果返回。 返回值返回转换后的长整型数。 附加说明 atol()与使用strtol(nptr,(char**)NULL,10);结果相同。 范例 /*将字符串a与字符串b转换成数字后相加*/

(c语言程序设计)10进制数转化为其它进制数

//用顺序栈来实现进制转换 #include #include #include #include #define STACK_INIT_SIZE 100 //存储空间初始分配量 #define STACKINCREMENT 10 //存储空间分配增量 typedef int SElemType; typedef int Status; typedef struct { SElemType *base; SElemType *top; int stacksize; //栈容量 }SqStack; SqStack S; Status InitStack(SqStack &S){ //构造一个空栈 S.base=(SElemType *)malloc(STACK_INIT_SIZE *sizeof(SElemType)); if(!S.base) exit(0); //存储空间失败 S.top=S.base; S.stacksize=STACK_INIT_SIZE; return 0; } Status GetTop(SqStack S,SElemType &e) //若栈不为空,则用e返回S的栈顶元素,并返回0,否则返回1 { if(S.top==S.base) return 1; e=*(S.top-1); return 0; } Status Push(SqStack &S ,SElemType e) //插入元素e为新的栈顶元素 { if(S.top-S.base>=S.stacksize) //如果栈满,则追加存储空间 { S.base=(SElemType *)realloc (S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!S.base) return 1 ; //存储分配失败 S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT;

字符串转换成数字

atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。 返回值返回转换后的浮点型数。 附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。 范例 /* 将字符串a 与字符串b转换成数字后相加*/ #include main() { char *a=”-100.23”; char *b=”200e-2”; float c; c=atof(a)+atof(b); printf(“c=%.2f\n”,c); } 执行 c=-98.23 atoi(将字符串转换成整型数) 相关函数 atof,atol,atrtod,strtol,strtoul 表头文件 #include 定义函数 int atoi(const char *nptr); 函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。 返回值返回转换后的整型数。

附加说明 atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。 范例 /* 将字符串a 与字符串b转换成数字后相加*/ #include mian() { char a[]=”-100”; char b[]=”456”; int c; c=atoi(a)+atoi(b); printf(c=%d\n”,c); } 执行 c=356 atol(将字符串转换成长整型数) 相关函数 atof,atoi,strtod,strtol,strtoul 表头文件 #include 定义函数 long atol(const char *nptr); 函数说明 atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。 返回值返回转换后的长整型数。 附加说明 atol()与使用strtol(nptr,(char**)NULL,10);结果相同。 范例 /*将字符串a与字符串b转换成数字后相加*/ #include main() { char a[]=”1000000000”; char b[]=” 234567890”; long c; c=atol(a)+atol(b); printf(“c=%d\n”,c); } 执行 c=1234567890

【js,字符串转换成数字的三种方法】js转化为字符串

【js,字符串转换成数字的三种方法】js转化为字符串 js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。 一些示例如下: 复制代码代码如下: parseInt("1234blue"); //returns 1234 parseInt("0xA"); //returns 10 parseInt("22.5"); //returns 22 parseInt("blue"); //returns NaN parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:

复制代码代码如下: parseInt("AF", 16); //returns 175 parseInt("10", 2); //returns 2 parseInt("10", 8); //returns 8 parseInt("10", 10); //returns 10 如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如: 复制代码代码如下: parseInt("010"); //returns 8 parseInt("010", 8); //returns 8 parseInt("010", 10); //returns 10 parseFloat()方法与parseInt()方法的处理方式相似。

任意进制转换(数据结构c语言版)

以下是在vc++6.0下运行的结果,我列举了输入345,进制分别为2,8,16的得出的结果,下面的不止只有这三个,输入任意进制的都可以 输入一个整数和进制数:345,2 转换成进制之后的数:101011001 Press any key to continue 输入一个整数和进制数:345,2 转换成进制之后的数:101011001 Press any key to continue 输入一个整数和进制数:345,16 转换成进制之后的数:159 Press any key to continue

程序如下: #include #include #define TRUE 1 #define FALSE 0 #define Stack_Size 100 typedef int StackElementType; typedef struct { StackElementType elem[Stack_Size]; int top; }SeqStack; void InitStack(SeqStack *S) { S->top=-1; }

int Push(SeqStack *S,StackElementType x) { if(S->top==Stack_Size-1) return(FALSE); S->top++; S->elem[S->top]=x; return(TRUE); } int Pop(SeqStack *S,StackElementType *x) { if(S->top==-1) return(FALSE); else { *x=S->elem[S->top]; S->top--; return(TRUE); }

c语言字符串与数字的相互转换

函数atof,atoi,atol,strtod,strtol,strtoul atof(将字串转换成浮点型数)相关函数atoi,atol,strtod,strtol,strtoul 表头文件#include 定义函数double atof(const char *nptr); 函数说明atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr 字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。 返回值返回转换后的浮点型数。 附加说明atof()与使用strtod(nptr,(char**)NULL)结果相同。 范例/* 将字符串a 与字符串b转换成数字后相加*/ #include main() { char *a=”-100.23”; char *b=”200e-2”; float c; c=atof(a)+atof(b); printf(“c=%.2f\n”,c); } 执行c=-98.23 atoi(将字符串转换成整型数)相关函数atof,atol,atrtod,strtol,strtoul 表头文件#include 定义函数int atoi(const char *nptr); 函数说明atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。 返回值返回转换后的整型数。 附加说明atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。 范例/* 将字符串a 与字符串b转换成数字后相加*/ #include mian() { char a[]=”-100”; char b[]=”456”; int c; c=atoi(a)+atoi(b); printf(c=%d\n”,c); } 执行c=356

c语言实现数制转换

.数制转换。 编写程序,将十进制整数N转换为d进制数,其转换步骤是重复以下两步,直到N等于0。 X=N mod d (其中mod为求余运算) N=N div d (其中div为整除运算) 测试数据:以十进制到二进制转换为例 输出结果为:(789)10→(1100010101)2 注意:要求使用栈的基本运算(包括InitStack(S),Pop(S),Push(S),IsEmpty(S)。应引用栈的头文件实现)。 #include #define StackSize 50 typedef struct { int elem[StackSize]; int top; }SeqStactk; void InitStack(SeqStactk *S) { S->top=-1; } int IsEmpty(SeqStactk *S) /*判断栈空运算*/ { if (S->top==-1) /*栈空*/ return 1; else /*栈不空*/ return 0; } void Push(SeqStactk *S,int *a) { //将a置入S中栈顶 if(S->top==StackSize-1) return; else{ S->top++; S->elem[S->top]=*a; } } //出栈 int Pop(SeqStactk *S,int *b) { //将s栈顶元素弹出,放到b所指向空间 if (S->top==-1) return -1; else { *b=S->elem[S->top];

S->top--; return *b; } } int main(void) { SeqStactk S; int x,d,a,b; InitStack(&S); printf("栈%s\n",(IsEmpty(&S)==1?"空":"不空")); printf("输入十进制数x:"); scanf("%d",&x); printf("输入想求几进制d:"); scanf("%d",&d); while(x!=0) { a=x%d; Push(&S,&a); x=x/d; } printf("输出%d进制数:",d); while(Pop(&S,&b)!=-1) { printf("%d",b); } printf("\n"); return 0; }

相关文档
相关文档 最新文档