itoa 及其实现与sprintf
来源:互联网 发布:c语言for循环执行顺序 编辑:程序博客网 时间:2024/06/13 23:49
/***************************************************************************************itoa与sprintf函数 linux c 字符串处理函数itoa函数及atoi函数,c语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:*****************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <string.h>void test1(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。10:十进制;2:二进制...itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。是Windows平台下扩展的,标准库中有sprintf,功能比这个更强,用法跟printf类似:char str[255];sprintf(str, "%x", 100); //将100转为16进制表示的字符串。下列函数可以将整数转换为字符串:----------------------------------------------------------函数名 作 用----------------------------------------------------------itoa() 将整型值转换为字符串ltoa() 将长整型值转换为字符串ultoa() 将无符号长整型值转换为字符串一 atoi 把字符串转换成整型数例程序:*****************************************************************************************/int atoi (char s[]);void test2(void ){ char s[100]; gets(s); printf("integer=%d/n",atoi(s));}int atoi (char s[]){ int i,n,sign; for(i=0;isspace(s[i]);i++) { }//跳过空白符; sign=(s[i]=='-')?-1:1; if(s[i]=='+'||s[i]==' -')//跳过符号 i++; for(n=0;isdigit(s[i]);i++) n=10*n+(s[i]-'0');//将数字字符转换成整形数字 return sign *n;}/***************************************************************************************二 itoa 把一整数转换为字符串例程序:*****************************************************************************************/void itoa (int n,char s[]);//atoi 函数:将s转换为整形数void test3(void ){ int n; char s[100]; printf("Input n:/n"); scanf("%d",&n); printf("the string : /n"); itoa(n,s);}void itoa(int n,char s[]){ int i,j,sign; if((sign=n)<0)//记录符号 n=-n;//使n成为正数 i=0; do { s[i++]=n%10+'0';//取下一个数字 }while ((n/=10)>0);//删除该数字 if(sign<0) s[i++]='-'; s[i]='\0'; for(j=i;j>=0;j--)//生成的数字是逆序的,所以要逆序输出 printf("%c",s[j]);}/***********************************************************************char *itoa(int value, char *string, int radix);int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等头文件: <stdlib.h>itoa操作使用 程序例:#include <stdlib.h>#include <stdio.h>int main(){ int number = 123456; char string[25]; itoa(number, string, 10); printf("integer = %d string = %s\n", number, string); return 0;}*************************************************************************//* 实现itoa函数的源代码 */char *myitoa(int num,char *str,int radix){ /* 索引表 */ char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; unsigned unum; /* 中间变量 */ bool minus=0; int i=0,j,k; /* 确定unum的值 */ if(radix==10&&num<0) /* 十进制负数 */ { unum=(unsigned)-num; minus=1; } else unum=(unsigned)num; /* 其他情况 */ /* 逆序 */ do { str[i++]=index[unum%(unsigned)radix]; unum/=radix; }while(unum); if(minus==1) str[i++]='-'; str[i]='\0'; /* 翻转 */ strrev(str); return str;}void test4(){ int number = 17; char string[25]; myitoa(number, string, 2); //按十进制转换 printf("integer = %d string = %s\n", number, string); myitoa(number, string, 16); //按16进制转换 printf("integer = %d string = %s\n", number, string);}int main(){ test4(); //test1(); //test2(); //test3();}
- itoa 及其实现与sprintf
- itoa与sprintf实现类型转换
- itoa与sprintf
- atoi,itoa,sprintf等函数的实现
- itoa atoi sprintf
- itoa atoi sprintf
- atoi 与 itoa的实现
- itoa与atoi的实现
- atoi 与 itoa的实现
- atoi与itoa代码实现
- atoi, itoa, sprintf and sscanf
- atoi, itoa, sprintf and sscanf
- itoa , atoi ,sprintf 的用法
- sprintf()和itoa()的区别
- C/C++_atoi,itoa功能及其实现原理
- C语言数字与字符串转换 atoi()函数、itoa()函数、sprintf()函数
- sprintf、snprintf、sscanf、itoa、atoi、cin、string与进制转换
- atoi() 与 itoa()函数的内部实现
- You cannot access the existing File Share resources on a Windows Server 2003 failover cluster
- hdu 1042 N!
- Android4.0加载网络图片问题
- Android 超级终端命令
- ActiveMQ5.7.0注册为windows系统服务后无法启动
- itoa 及其实现与sprintf
- hdu 3926 Hand in Hand(同构图)
- 数据存储引擎 InnoDB, MyISAM
- ConcurrentLinkedQueue的实现原理分析
- 注册拦截收到短信彩信广播的intent-filter
- JSP中的pageEncoding和contentType属性(转)
- 如何让你的项目按期完工
- Linux下Java程序将汉字显示为方块的解决方法
- 关于数学中排列组合之组合算法实现