itoa函数

itoa()和sprintf()函数

蓝咒 提交于 2020-01-16 23:14:37
1.itoa函数原型 char *itoa( int value, char *string,int radix); 把整数转换成字符串 value:被转的整数值 string:保存转后的字符串的变量 radix:按几进制转换(10,8,2,16进制等) #include <stdlib.h>   #include <stdio.h>   int main(void)   {   int number = 12345;   char string[25];   itoa(number, string, 10);   printf("integer = %d string = %s\n", number, string);   return 0;   } 2.sprintf()函数 itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf,用法和printf相似。  sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format [, argument] ... ); 格式化数字字符串 sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代 itoa 。 如: //把整数123 打印成一个字符串保存在s 中。 sprintf

atoi,itoa,strcpy, strcmp,strcpy, strcpy_s, memc...

不问归期 提交于 2019-12-09 10:30:51
strcpy()、strlen()、memcpy()、memmove()、memset()的实现 strcpy(), 字符串拷贝. char * strcpy( char * strDest, const char * strSrc) { assert((strDest != NULL) && (strSrc != NULL)); char * address = strDest; while ( ( * strDest ++ = * strSrc ++ ) != ' \0 ' ) NULL ; return address ; } strlen, 第一种方法: int strlen( const char *str) { assert(str != NULL); int len = 0; while ((*str++) != '\0' ) len++; return len; } 第二种方法: int strlen( const char *str) { assert(str != NULL); const char *p = str; while ((*p++) != '\0' ); return p - str - 1; } 第三种方法: int strlen( const char * str) { if (str[0] == '\0' ) return 0; else

字符串与其他基本类型的转换——从C到C++11

橙三吉。 提交于 2019-12-06 22:35:19
转自 IBM 编译器中国开发团队的《C++11中的string - atoi/itoa》 在C++11中,由于右值引用的引入,常为人所诟病std::string的性能问题得到了很大的改善。另外一方面,我们也可以看到新语言为std::string类增加了很多新的api。比较引人注意的就是std::string的成员函数stoi系列,以及std::to_string全局函数。这两种API虽然很不起眼,却为C++11的格式化输出(formatted I/O)增加了一种实用的手段。我们可以依序会议一下C,C++98,C++11中我们是如何处理atoi/itoa的问题的: 在C时代,通常我们遇到atoi(字符串到数值转换)的问题的时候我们会使用<stdlib.h>中的atoi函数: int num = atoi(cstr); 这里的cstr通常为char 或者const char 类型的字符串。函数返回的结果则是该字符串所表示的一个十进制的integer。函数的整个效果则等同于<stdlib.h>中的另外一个函数strtol: int num = strtol(cstr, NULL, 10); 相比于atoi,strtol多了最后一个参数"radix"表明函数采用的是几进制(这个进制数可以从2到34,这个数值范围的原因显而易见)。除去strtol会在出错时设置全局的errno外

第二次博客作业

南楼画角 提交于 2019-12-04 04:43:01
一.运行截图 (1) 这是输入正确时的转换 (2) 当输入的选项不在选项范围时会提示无效选项且不会退出,而是可以继续选择。 (3)当输入的数字不是所需进制数时会提示错误,并且可以重新输入正确的数字。 (由于其他操作均相同,就不一一列出所有进制转换及错误提示) 二.函数介绍 1.函数声明 #include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> void Er(); //将二进制数转换为其他三种进制数 void Ba(); //将八进制数转换为其他三种进制数 void Shi(); //将十进制数转换为其他三种进制数 void Shiliu();//将十六进制数转换为其他三种进制数 2.各个进制转换的函数 void Er(){//将二进制数转换为其他三种进制数 char str[128]; int b,i,j,length,sum=0; input: printf("请输入您需要转换的二进制数:\n"); scanf("%s",str); length=strlen(str); //length为字符长度 for(i=length-1;i>=0;i--){ if(str[i]!='0' && str[i]!='1'){ printf("Error\n"); printf("请输入正确的二进制数\n

1.itoa()函数

匿名 (未验证) 提交于 2019-12-02 23:32:01
itoa()函数 需求 把整型数字转换成字符串存储在数组中 itoa() 1.头文件:#include<stdlib.h> 2.用法:itoa(整型数据,目标字符串,进制) 3.举例 # include <stdio.h> # include <stdlib.h> int main ( void ) { int n = 123 ; char num [ 20 ] = { 0 } ; scanf ( "%d" , & n ) ; itoa ( n , num , 10 ) //将整型的n转为十进制的字符数字存储在num中 printf ( "%s\n" , num ) ; return 0 ; } 缺点 :非标准库函数,移植性差,在使用时应注意 转载请标明出处: 1.itoa()函数 文章来源: https://blog.csdn.net/weixin_44618862/article/details/90272340

C/C++中几个常用的库函数

雨燕双飞 提交于 2019-11-30 14:37:37
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。 1.int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。 ● itoa():将整型值转换为字符串。 ● ltoa():将长整型值转换为字符串。 ● ultoa():将无符号长整型值转换为字符串。 ● gcvt():将浮点型数转换为字符串,取四舍五入。 ● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。 ● fcvt():指定位数为转换精度,其余同ecvt()。 除此外,还可以使用 sprintf 系列函数把数字转换成字符串,其比itoa()系列函数运行速度慢 2. string/array to int/float C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。 ● atof():将字符串转换为双精度浮点型值。 ● atoi():将字符串转换为整型值。 ● atol():将字符串转换为长整型值。 ● strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。 ● strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。 ● strtoul()

洛谷 CF39H 题解

自闭症网瘾萝莉.ら 提交于 2019-11-28 07:36:44
这道题,无非就是普通的进制问题,好简单哦~~ 函数: int itoa(int s) { int r=0,k=0;//k表示位数-1 while(s>=1)//用数学方法转换进制 { r+=s%n*pow(10,k);//省略数组 s/=n;//更新一次s k++;//进一位 } return r;为后续代码做铺垫!!! } ### 然后,只需排版即可! for(int i=1;i<=n-1;i++) for(int j=1;j<=n-1;j++) { cout<<itoa(i*j); if(j==n-1) cout<<endl;//判断是否为最后的数 else if(j==1&&itoa((j+1)*i)<10)cout<<" ";//判断每行第一个数是否为两位数 else if(itoa(i*j)<10&&itoa((j+1)*i)<10) cout<<" ";//判断下一个数是否为两位数 else cout<<" ";//情况都不满足,打一空格 } # 上完整代码! ! ! #include<bits/stdc++.h> using namespace std; short n; int itoa(int s) { int r=0,k=0,x[2]; while(s>=1) { r+=s%n*pow(10,k); s/=n; k++; } return r; } int