详解atoi/itoa函数

一.atoi函数

1.基本规则

函数原型: int atoi(const char *str);

函数功能:把字符串转成整形

返回值:每个函数返回int值,如果该输入无法转换为该类型的值,则atoi的返回值为0.

2.函数使用演示

#include 
#include 
int main()
{
	char *str = "1234";
	int a;
	a = atoi(str);
	printf("%d\n",a);
	return 0;
}

输出int型数字1234

3.C语言实现atoi函数

注意事项:开头是空格,判断正负,出现非数字字符,整型的范围

#include 
#include 
int my_atoi(const char*src)
{
	int sum = 0;
	int flag = 1;//正数为false
	while(*src == ' ')//跳过空白符
	{
		src++;
	}

	if(*src == '+' || *src == '-')//判断正负
	{
		if(*src == '-')
		{
			flag = -1;
		}
		src++;
	}
	else if(*src < '0' || *src > '9')
	{
		sum = 0;
		return sum;
	}

	while(*src != '\0' && *src >= '0' && *src <= '9')
	{
		sum = sum*10+(*src-'0');
		src++;
	}
	if((flag && sum > 0x7FFFFFFF)||(!flag && sum>0x80000000))
	{
		sum = 0;
		return sum;
	}
	else
		return sum *flag;
}
int main()
{
	
	char*str1 = "1234";
	char *str2 = "-1234";
	char *str3 = "--1234";
	char *str4 = "";
	printf("%d\n",my_atoi(str1));
	printf("%d\n",my_atoi(str2));
	printf("%d\n",my_atoi(str3));
	printf("%d\n",my_atoi(str4));
	
	return 0;
}

 

二.itoa函数

1.基本规则

函数原型:char *itoa(int value,char *string,int radix);   value:与转化的数据   string:目标字符串地址   radix:转化后的进制

函数功能:将整数值转化成为相应进制数字的字符串

2.函数使用演示

将字符串“10”转换成9进制的数字

#include 
#include 
int main()
{
	int num = 10;
	char string[20];
	itoa(num,string,9);
	printf("%s\n",string);
	return 0;
}

输出11

3.C实现itoa函数

void my_itoa(int n,char s[])
{
	int i;
	int j;
	int sign;
	sign = n;//记录符号
	if(sign < 0)
	{
		n = -n;//变为正数处理
	}
	i = 0;
	while(n > 0)
	{
		s[i++] = n%10+'0';
		n = n/10;
	}
	if(sign < 0)
	{
		s[i++] = '-';
		
	}
	s[i] = '\0';
	for(j = i;j>=0;j--)
	{
		printf("%c",s[j]);
	}
}

int main()
{
	int n;
	char s[20];
	n =123;
	my_itoa(n,s);
}

 

你可能感兴趣的:(详解atoi/itoa函数)