xml地图|网站地图|网站标签 [设为首页] [加入收藏]

c语言字符串,无符号整数之间的转换常用函数

来源:http://www.ccidsi.com 作者:最新解决方案 人气:157 发布时间:2019-07-31
摘要:方今学数据结构老是做尝试 常用到字符串和数字的转移 想找却发现英特网的材料太散 就此搜罗整理一下 方便以往再用 卓有成效的函数,多谢发贴那位兄弟。。。。。。 除去强制类型

方今学数据结构老是做尝试
常用到字符串和数字的转移
想找却发现英特网的材料太散
就此搜罗整理一下 方便以往再用

卓有成效的函数,多谢发贴那位兄弟。。。。。。

除去强制类型转换和隐士类型转换外,别的的转变函数基本聚焦在头文件<stdlib.h>中。

atof(将字符串转变到浮点型数)
atoi(将字符串转变来整型数)
atol(将字符串转变到长整型数)
strtod(将字符串转变到浮点数)
strtol(将字符串调换到长整型数)
strtoul(将字符串调换到无符号长整型数)
toascii(将整型数调换到合法的ASCII 码字符)
toupper(将小写字母转变到大写字母)
tolower(将大写字母转变到小写字母)

atof(将字符串转变到浮点型数)

切切实实参见代码中的注释,代码中只写了多少个函数的测量检验函数,其余的可类似仿效编写。 

     atof(将字符串调换成浮点型数)
相关函数 atoi,atol,strtod,strtol,strtoul
表头文件 #include <stdlib.h>
概念函数 double atof(const char *nptr);
函数表明 atof()会扫描参数nptr字符串,跳过前边的空格字符,直到遇上数
     字或正负符号才起来做转变,而再际遇非数字或字符串结束时
     ('\0')才结束调换,并将结果回到。参数nptr字符串可含蓄正负
     号、小数点或E(e)来表示指数部分,如123.456或123e-2。
 重回值 重回转变后的浮点型数。
叠合表达 atof()与应用strtod(nptr,(char**)NULL)结果一律。
  范例 /* 将字符串a 与字符串b转换来数字后相加*/
     #include<stdlib.h>
     main()
     {
     char *a=”-100.23”;
     char *b=”200e-2”;
     float c;
     c=atof(a) atof(b);
     printf(“c=%.2fn”,c);
     }
  执行 c=-98.23
     atoi(将字符串调换到整型数)
连锁函数 atof,atol,atrtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 int atoi(const char *nptr);
函数表明 atoi()会扫描参数nptr字符串,跳过后面包车型大巴空格字符,直到遇上数
     字或正负符号才起来做调换,而再境遇非数字或字符串停止时
     ('\0')才截止调换,并将结果回到。
 重返值 重返转变后的整型数。
外加表达 atoi()与应用strtol(nptr,(char**)NULL,10);结果一致。
  范例 /* 将字符串a 与字符串b转变来数字后相加*/
     #include<stdlib.h>
     mian()
     {
     char a[]=”-100”;
     char b[]=”456”;
     int c;
     c=atoi(a) atoi(b);
     printf(c=%dn”,c);
     }
  执行 c=356
     atol(将字符串转变成长整型数)
连带函数 atof,atoi,strtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 long atol(const char *nptr);
函数表明 atol()会扫描参数nptr字符串,跳过后面包车型地铁空格字符,直到遇上数
     字或正负符号才开首做转换,而再遇到非数字或字符串截至时
     ('\0')才停止转变,并将结果回到。
 重返值 重返转变后的长整型数。
叠合表达 atol()与应用strtol(nptr,(char**)NULL,10);结果一律。
  范例 /*将字符串a与字符串b转换到数字后相加*/
     #include<stdlib.h>
     main()
     {
     char a[]=”1000000000”;
     char b[]=” 234567890”;
     long c;
     c=atol(a) atol(b);
     printf(“c=%dn”,c);
     }
  执行 c=1234567890
     gcvt(将浮点型数转换为字符串,取四舍五入)
连锁函数 ecvt,fcvt,sprintf
表头文件 #include<stdlib.h>
概念函数 char *gcvt(double number,size_t ndigits,char *buf);
函数表明 gcvt()用来将参数number转变来ASCII码字符串,参数ndigits表示
     显示的位数。gcvt()与ecvt()和fcvt()差别的地点在于,gcvt()所
     转变后的字符串包罗小数点或正负符号。若转变来功,转变后的字
     符串会放在参数buf指针所指的长空。
 再次回到值 重临一字符串指针,此地方即为buf指针。
外加表达
  范例 #include<stdlib.h>
     main()
     {
     double a=123.45;
     double b=-1234.56;
     char *ptr;
     int decpt,sign;
     gcvt(a,5,ptr);
     printf(“a value=%sn”,ptr);
     ptr=gcvt(b,6,ptr);
     printf(“b value=%sn”,ptr);
     }
  执行 a value=123.45
     b value=-1234.56
     strtod(将字符串转换来浮点数)
连带函数 atoi,atol,strtod,strtol,strtoul
表头文件 #include<stdlib.h>
概念函数 double strtod(const char *nptr,char **endptr);
函数表明 strtod()会扫描参数nptr字符串,跳过前边的空格字符,直到遇上
     数字或正负符号才开端做调换,到出现非数字或字符串甘休时
     ('\0')才停止调换,并将结果重回。若endptr不为NULL,则会将遇
     到不合条件而告一段落的nptr中的字符指针由endptr传回。参数nptr字
     符串可含蓄正负号、小数点或E(e)来代表指数部分。如123.456或
     123e-2。
 重返值 重回调换后的浮点型数。
叠合表达 参照他事他说加以考察atof()。
  范例 /*将字符串a,b,c 分别使用10,2,16 进制调换到数字*/
     #include<stdlib.h>
     mian()
     {
     char a[]=”1000000000”;
     char b[]=”1000000000”;
     char c[]=”ffff”;
     printf(“a=%dn”,strtod(a,NULL,10));
     printf(“b=%dn”,strtod(b,NULL,2));
     printf(“c=%dn”,strtod(c,NULL,16));
     }
  执行 a=1000000000
     b=512
     c=65535
     strtol(将字符串调换到长整型数)
有关函数 atof,atoi,atol,strtod,strtoul
表头文件 #include<stdlib.h>
定义函数 long int strtol(const char *nptr,char **endptr,int base);
函数表明 strtol()会将参数nptr字符串遵照参数base来改变来长整型数。参
     数base范围从2至36,或0。参数base代表行使的进制情势,如base
     值为10则采用10进制,若base值为16则采用16进制等。当base值为0
     时则是行使10进制做调换,但遭受如'0x'后置字符则会利用16进制
     做调换。一同初strtol()会扫描参数nptr字符串,跳过前面包车型地铁空格
     字符,直到遇上数字或正负符号才开始做转变,再蒙受非数字或字
     符串结束时('\0')甘休转变,并将结果回到。若参数endptr不为
     NULL,则会将碰着不合条件而止住的nptr中的字符指针由endptr返
     回。
 再次回到值 重临转换后的长整型数,否则再次来到ERANGE并将错误代码存入errno
     中。
外加表达 ERANGE钦命的转移字符串高出法定范围。
  范例 /* 将字符串a,b,c 分别选择10,2,16进制调换来数字*/
     #include<stdlib.h>
     main()
     {
     char a[]=”1000000000”;
     char b[]=”1000000000”;
     char c[]=”ffff”;
     printf(“a=%dn”,strtol(a,NULL,10));
     printf(“b=%dn”,strtol(b,NULL,2));
     printf(“c=%dn”,strtol(c,NULL,16));
     }
  执行 a=1000000000
     b=512
     c=65535
     strtoul(将字符串转变来无符号长整型数)
有关函数 atof,atoi,atol,strtod,strtol
表头文件 #include<stdlib.h>
定义函数 unsigned long int strtoul(const char *nptr,char
     **endptr,int base);

表头文件 #include <stdlib.h>
概念函数 double atof(const char *nptr);
函数表达
atof()会扫描参数nptr字符串,跳过前面包车型地铁空格字符,直到遇上数字或正负符号才起来做转变,而再遭受非数字或字符串结束时('')才甘休转变,并将结果回到。参数nptr字符串可含蓄正负号、小数点或E(e)来代表指数部分,如123.456或123e-2。
回到值 重回调换后的浮点型数。
外加表达 atof()与利用strtod(nptr,(char**)NULL)结果一致。
范例 /* 将字符串a 与字符串b调换来数字后相加*/
#include<stdlib.h>
main()
{
char *a=”-100.23”;
char *b=”200e-2”;
float c;
c=atof(a) atof(b);
printf(“c=%.2fn”,c);
}
执行
c=-98.23

 /*

函数表明 strtoul()会将参数nptr字符串依照参数base来转换来无符号的长整
     型数。参数base范围从2至36,或0。参数base代表选取的进制方
     式,如base值为10则采用10进制,若base值为16则采用16进制数
     等。当base值为0时则是行使10进制做调换,但碰到如'0x'前置字符
     则会使用16进制做转变。一齐首strtoul()会扫描参数nptr字符串,
     跳过后面包车型客车空格字符串,直到遇上数字或正负符号才初步做调换,
     再遇上非数字或字符串甘休时('\0')甘休调换,并将结果重临。若
     参数endptr不为NULL,则会将赶过不合条件而终止的nptr中的字符
     指针由endptr返回。
 重临值 重返调换后的长整型数,不然重临ERANGE并将错误代码存入errno
     中。
叠加表达 ERANGE钦点的改动字符串高出法定范围。
  范例 参考strtol()
     toascii(将整型数转变来合法的ASCII 码字符)
有关函数 isascii,toupper,tolower
表头文件 #include<ctype.h>
定义函数 int toascii(int c)
函数表明 toascii()会将参数c转换来7位的unsigned char值,第陆位则会被
     清除,此字符即会被转成ASCII码字符。
 再次回到值 将转移成功的ASCII码字符值重返。
  范例 #include<stdlib.h>
     main()
     {
     int a=217;
     char b;
     printf(“before toascii () : a value =%d(%c)n”,a,a);
     b=toascii(a);
     printf(“after toascii() : a value =%d(%c)n”,b,b);
     }
  执行 before toascii() : a value =217()
     after toascii() : a value =89(Y)
     tolower(将大写字母转变来小写字母)
连带函数 is阿尔法,toupper
表头文件 #include<stdlib.h>
定义函数 int tolower(int c);
函数表明 若参数c为大写字母则将该对应的小写字母再次回到。
 重返值 重临转变后的小写字母,若不须改变则将参数c值重返。
外加表明
  范例 /* 将s字符串内的大写字母转变到小写字母*/
     #include<ctype.h>
     main()
     {
     char s[]=”aBcDeFgH12345;!#$”;
     int i;
     printf(“before tolower() : %sn”,s);
     for(i=0;I<sizeof(s);i )
     s[i]=tolower(s[i]);
     printf(“after tolower() : %sn”,s);
     }
  执行 before tolower() : aBcDeFgH12345;!#$
     after tolower() : abcdefgh12345;!#$
     toupper(将小写字母转变到大写字母)
相关函数 is阿尔法,tolower
表头文件 #include<ctype.h>
定义函数 int toupper(int c);
函数表明 若参数c为小写字母则将该对映的大写字母重回。
 重返值 重返转变后的大写字母,若不须更改则将参数c值再次回到。
叠合表达
  范例 /* 将s字符串内的小写字母转变到大写字母*/
     #include<ctype.h>
     main()
     {
     char s[]=”aBcDeFgH12345;!#$”;
     int i;
     printf(“before toupper() : %sn”,s);
     for(i=0;I<sizeof(s);i )
     s[i]=toupper(s[i]);
     printf(“after toupper() : %sn”,s);
     }
  执行 before toupper() : aBcDeFgH12345;!#$
     after toupper() : ABCDEFGH12345;!#$

////////////////////////////////////////////////////////////////////
atoi(将字符串调换来整型数)

 * 版权,文件改换音讯认证
 * 文件名:TestConvertion.cpp
 * 效用:测量检验stdlib.h头文件中的类型转换函数
 * 原作者:zxh
 * 最新修改:zxh
 * 最新修改时间:二零零六-06-25
 */

本文来源CSDN博客,转发请标记出处:

表头文件 #include<stdlib.h>
定义函数 int atoi(const char *nptr);
函数表达atoi()会扫描参数nptr字符串,跳过前边的空格字符,直到遇上数字或正负符号才初始做转变,而再相见非数字或字符串结束时('')才截止转换,并将结果再次来到。
归来值 重回转换后的整型数。
叠合表明 atoi()与行使strtol(nptr,(char**)NULL,10);结果同样。
范例 /* 将字符串a 与字符串b调换来数字后相加*/
#include<stdlib.h>
mian()
{
char a[]=”-100”;
char b[]=”456”;
int c;
c=atoi(a) atoi(b);
printf(c=%dn”,c);
}
执行
c=356
//////////////////////////////////////////////////////////////////////////
atol(将字符串调换到长整型数)

#include<stdio.h>
#include<ctype.h>
/*
 * 首要测量试验该头文件<stdlib.h>中的如下函数(参数中的const表表示情爱戴源指针指向的字符串不可能修改):
 * double atof(const char *nptr)  
 *   atof()会扫描参数nptr字符串,跳过后边的空格字符,直到遇上数字或正负符号才起来做转变
 *   而再蒙受非数字或字符串结束时('\0')才甘休转换,并将结果回到。参数nptr字符串可含蓄正负号
 *   小数点或E(e)来表示指数部分,如123.456或123e-2。
 *   与strtod(nptr,(char **)NULL)结果同样。


表头文件 #include<stdlib.h>
定义函数 long atol(const char *nptr);
函数表明atol()会扫描参数nptr字符串,跳过后面包车型地铁空格字符,直到遇上数字或正负符号才起首做调换,而再遇到非数字或字符串停止时('')才截止调换, 并将结果重返。
回来值 重回调换后的长整型数。
叠合表达 atol()与应用strtol(nptr,(char**)NULL,10);结果一律。
范例 /*将字符串a与字符串b调换来数字后相加*/
#include<stdlib.h>
main()
{
char a[]=”1000000000”;
char b[]=” 234567890”;
long c;
c=atol(a) atol(b);
printf(“c=%dn”,c);
}
执行
c=1234567890

 * int atoi(const char *nptr)     
 *   atoi()会扫描参数nptr字符串,跳过前边的空格字符,直到遇上数字或正负符号才起来做转变,
 *   而再蒙受非数字或字符串甘休时('\0')才停止转变,并将结果回到。
 *   与使用strtol(nptr,(char**)NULL,10)结果一律。

////////////////////////////////////////////////////////////////

 * long atol(const char *nptr)    
 *   atol()会扫描参数nptr字符串,跳过前面包车型地铁空格字符,直到遇上数字或正负符号才开端做调换,
 *   而再蒙受非数字或字符串甘休时('\0')才截止转变,并将结果再次来到。
 *   atol()与使用strtol(nptr,(char**)NULL,10)结果一样。

gcvt(将浮点型数转变为字符串,取四舍五入)
连锁函数 ecvt,fcvt,sprintf
表头文件 #include<stdlib.h>
概念函数 char *gcvt(double number,size_t ndigits,char *buf);
函 数说明gcvt()用来将参数number转变到ASCII码字符串,参数ndigits表示展现的位数。gcvt()与ecvt()和fcvt()区别的地方在于,gcvt()所退换后的字符串富含小数点或正负符号。若调换到功,调换后的字符串会放在参数buf指针所指的半空中。
回来值 再次回到一字符串指针,此地点即为buf指针。
外加表明 榜样 #include<stdlib.h>

 * char *gcvt(double number,size_t ndigits,char *buf) 
 *   gcvt()用来将参数number转换来ASCII码字符串,参数ndigits表示展现的位数。
 *   gcvt()与ecvt()和fcvt()分歧的地方在于,gcvt()所改变后的字符串包罗小数点或正负符号。
 *   若转变到功,转变后的字符串会放在参数buf指针所指的半空中。重返一字符串指针,此地点即为buf指针。

main()
{
double a=123.45;
double b=-1234.56;
char *ptr;
int decpt,sign;
gcvt(a,5,ptr);
printf(“a value=%sn”,ptr);
ptr=gcvt(b,6,ptr);
printf(“b value=%sn”,ptr);
}
执行
a value=123.45
b value=-1234.56
///////////////////////////////////////////////////////////////////////
strtod(将字符串调换到浮点数)
表头文件 #include<stdlib.h>
概念函数 double strtod(const char *nptr,char **endptr);
函 数说明strtod()会扫描参数nptr字符串,跳过前面包车型的士空格字符,直到遇上数字或正负符号才起来做转换,到出现非数字或字符串甘休时('')才甘休转换,并将结果再次来到。若endptr不为NULL,则会将蒙受不合条件而告一段落的nptr中的字符指针由endptr传回。参数nptr字符串可含蓄正负号、 小数点或E(e)来代表指数部分。如123.456或123e-2。
归来值 再次回到转变后的浮点型数。
叠合表明 仿照效法atof()。
范例 /*将字符串a,b,c 分别使用10,2,16 进制转换到数字*/
#include<stdlib.h>
mian()
{
char a[]=”1000000000”;
char b[]=”1000000000”;
char c[]=”ffff”;
printf(“a=%dn”,strtod(a,NULL,10));
printf(“b=%dn”,strtod(b,NULL,2));
printf(“c=%dn”,strtod(c,NULL,16));
}
执行
a=1000000000
b=512
c=65535
////////////////////////////////////////////////////////////////////////////////////
strtol(将字符串调换来长整型数)
有关函数 atof,atoi,atol,strtod,strtoul
表头文件 #include<stdlib.h>
定义函数 long int strtol(const char *nptr,char **endptr,int base);
函数表明
strtol()会将参数nptr字符串依据参数base来改变来长整型数。参数base范围从2至36,或0。参数base代表选用的进制格局,如 base值为10则利用10进制,若base值为16则接纳16进制等。当base值为0时则是运用10进制做转变,但遭遇如'0x'后置字符则会选拔16进制做转变。一起先strtol()会扫描参数nptr字符串,跳过前面包车型地铁空格字符,直到遇上数字或正负符号才开端做转变,再相见非数字或字符串结束时('')停止转变,并将结果重返。若参数endptr不为NULL,则会将遭受不合条件而偃旗息鼓的nptr中的字符指针由endptr重回。
回到值 重返转变后的长整型数,不然重回ERANGE并将错误代码存入errno中。
叠合表明 ERANGE钦点的转换字符串超越法定范围。
范例 /* 将字符串a,b,c 分别选用10,2,16进制转变到数字*/
#include<stdlib.h>
main()
{
char a[]=”1000000000”;
char b[]=”1000000000”;
char c[]=”ffff”;
printf(“a=%dn”,strtol(a,NULL,10));
printf(“b=%dn”,strtol(b,NULL,2));
printf(“c=%dn”,strtol(c,NULL,16));
}
执行
a=1000000000
b=512
c=65535
///////////////////////////////////////////////////////////
strtoul(将字符串转变来无符号长整型数)
有关函数 atof,atoi,atol,strtod,strtol
表头文件 #include<stdlib.h>
定义函数 unsigned long int strtoul(const char *nptr,char **endptr,int base);
函数表明
strtoul()会将参数nptr字符串依据参数base来转变到无符号的长整型数。参数base范围从2至36,或0。参数base代表选用的进制 格局,如base值为10则利用10进制,若base值为16则利用16进制数等。当base值为0时则是选拔10进制做调换,但境遇如'0x'前置字符 则会使用16进制做调换。一开头strtoul()会扫描参数nptr字符串,跳过前边的空格字符串,直到遇上数字或正负符号才起来做转变,再境遇非数字 或字符串甘休时('')停止调换,并将结果回到。若参数endptr不为NULL,则会将蒙受不合条件而停息的nptr中的字符指针由endptr重临。
返回值
归来转变后的长整型数,否则重回ERANGE并将错误代码存入errno中。
外加表明
ERANGE钦定的改变字符串凌驾法定范围。
范例
参考strtol()

 * double strtod(const char *nptr ,char **endptr,int base)     
 *   strtod()会扫描参数nptr字符串,跳过前边的空格字符,直到遇上数字或正负符号才起来做转变,
 *   到现身非数字或字符串截至时('\0')才结束转变,并将结果回到。若endptr不为NULL,
 *   则会将境遇不合条件而告一段落的nptr中的字符指针由endptr传回。参数nptr字符串可含蓄正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。
  
 * long int strtol(const char *nptr,char **endptr,int base)    
 *   strtol()会将参数nptr字符串依据参数base来调换到长整型数。参数base范围从2至36,或0。参数base代表行使的进制形式,如base值为10则应用10进制,
 *   若base值为16则动用16进制等。当base值为0时则是选择10进制做调换,但遇到如'0x'前置字符则会使用16进制做调换。一同先strtol()会扫描参数nptr字符串,
 *   跳过前边的空格字符,直到遇上数字或正负符号才起来做调换,再遇上非数字或字符串结束时('\0')停止转变,并将结果回到。若参数endptr不为NULL,
 *   则会将蒙受不合条件而告一段落的nptr中的字符指针由endptr重临。
 *
 * unsigned long int strtoul(const char *nptr,char **endptr,int base)  
 *   strtoul()会将参数nptr字符串依据参数base来调换到无符号的长整型数。参数base范围从2至36,或0。
 *   参数base代表接纳的进制格局,如base值为10则利用10进制,若base值为16则利用16进制数等。
 *   当base值为0时则是采纳10进制做调换,但蒙受如'0x'前置字符则会动用16进制做调换。一开首strtoul()会扫描参数nptr字符串,
 *   跳过后面包车型客车空格字符串,直到遇上数字或正负符号才开头做转换,再遇上非数字或字符串停止时('\0')截至转变,并将结果重返。
 *   若参数endptr不为NULL,则会将凌驾不合条件而止住的nptr中的字符指针由endptr再次来到。
 *   再次回到调换后的长整型数,不然再次回到ERANGE并将错误代码存入errno中。ERANGE钦定的转变字符串超过法定范围。
 *
 * int toascii(int c)
 *   toascii()会将参数c调换来7位的unsigned char值,第柒人则会被消除,此字符即会被转成ASCII码字符。
 *
 * int tolower(int c)
 *   若参数c为大写字母则将该对应的小写字母重回。
 *
 * int toupper(int c)
 *   若参数c为小写字母则将该对映的大写字母重返。
 *
 */
#include<stdlib.h>

本文由68399皇家赌场发布于最新解决方案,转载请注明出处:c语言字符串,无符号整数之间的转换常用函数

关键词: 68399皇家赌场

最火资讯