itoa和atoi函数
来源:互联网 发布:利基通讯淘宝店可靠吗 编辑:程序博客网 时间:2024/05/19 06:17
itoa
功 能:把一整数转换为字符串
用 法:char *itoa(int value, char *string, int radix);
详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.
参数:
value: 待转化的整数。
radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。
* string: 保存转换后得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
备注:该函数的头文件是"stdlib.h"
程序例:
#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;
}
注释:编译系统:VC++6.0,TC不支持。
我们可以这样构造itoa()
char* itoa(int i)
{
char *a=malloc(42); /* Enough for a 128 bit integer */
if (a) sprintf(a,"%d",i);
return a;
}
实现itoa函数的源代码
char *my_itoa(int num,char *str,int radix){
const char table[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char *ptr = str;
bool negative = false;
if(num == 0){ //num=0
*ptr++='0';
*ptr='/0'; // don`t forget the end of the string is '/0'!!!!!!!!!
return str;
}
if(num<0){ //if num is negative ,the add '-'and change num to positive
*ptr++='-';
num*=-1;
negative = true;
}
while(num){
*ptr++ = table[num%radix];
num/=radix;
}
*ptr = '/0'; //if num is negative ,the add '-'and change num to positive
// in the below, we have to converse the string
char *start =(negative?str+1:str); //now start points the head of the string
ptr--; //now prt points the end of the string
while(start<ptr){
char temp = *start;
*start = *ptr;
*ptr = temp;
start++;
ptr--;
}
return str;
}
atoi
C语言库函数名: atoi
功 能: 把字符串转换成整型数.
名字来源:array to integer 的缩写.
函数说明: atoi()会扫描参数nptr字符串,如果第一个字符不是数字也不是正负号返回零,否则开始做类型转换,之后检测到非数字或结束符 /0 时停止转换,返回整型数。
原型: int atoi(const char *nptr);
需要用到的头文件: #include <stdlib.h>
程序例:
1)
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int n;
char *str = "12345.67";
n = atoi(str);
printf("string = %s integer = %d/n", str, n);
return 0;
}
执行结果
string = 12345.67 integer = 12345
2)
#include <stdlib.h>
#include <stdio.h>
int main()
{
char a[] = "-100" ;
char b[] = "123" ;
int c ;
c = atoi( a ) + atoi( b ) ;
printf("c = %d/n", c) ;
return 0;
}
执行结果
c = 23
简单的实现atoi函数的源代码:
int my_atoi(const char *str){
int result= 0;
bool signal = false;
if((*str>='0'&&*str<='9')||*str=='-'||*str=='+'){
if(*str=='-'||*str=='+'){
if(*str=='-')
signal = true;
str++;
}
}
else
return 0;
while(*str>='0'&&*str<='9')
result = result*10+(*str++ -'0');
return signal?-result:result;
以上源代码有一个缺点,就是没有检查最大值,因为int的值是有范围的。
另外,c 语言没有bool类型。
- atoi和itoa函数
- itoa和atoi函数
- atoi和itoa函数
- itoa 和 atoi 函数
- itoa()和atoi()函数
- atoi和itoa函数
- itoa函数和atoi函数
- atoi和itoa函数实现
- 实现函数atoi和itoa
- atoi和itoa函数实现
- itoa()和atoi()函数实现
- 关于atoi()函数和itoa()函数
- C语言itoa()函数和atoi()函数
- atoi函数和itoa函数用法
- C实现atoi()函数和itoa()函数
- atoi和itoa函数的实现
- c函数itoa和atoi实现
- atoi和itoa函数的实现方法
- C#学习纪要:7月13日
- 转 YB's Space 264解码主函数架构
- 0713
- hibernate痛苦的初体验
- mysql 各种时间段查询
- itoa和atoi函数
- 解决srand()与rand()每次运行结果一样的问题
- Windows必须掌握的快捷键,你都会了吗?
- 暑期java基础巩固训练营正式发布
- java基础巩固训练营 简介
- java基础巩固训练营【第一轮】(一)项目环境和规范
- java基础巩固训练营【第一轮】(一)项目环境和规范 补充
- java基础巩固训练营【第一轮】(二)JAVA基础
- java基础巩固训练营【第一轮】((二)JAVA基础 补充