char int
http://topic.csdn.net/t/20060821/09/4963376.html
char 定义字符型数据
int 定义整型数据
存储空间、取值范围不一样
CHAR在电脑自然也是整数形式
不过显示的时候 就根据整数的数值找到相应的字符显示
一般在32位系统里int 占4个字节,char占1个字节
char+int时,char自动提升为int
=========================================================================
http://zhidao.baidu.com/question/115633234.html
功 能:把一整数转换为字符串
用 法: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"
atoi和itoa的C实现
=================================================================================
http://blog.163.com/shi_shun/blog/static/23707849201001394729708/
(2)atoi的实现:
DE>#include<stdio.h>
int atoi(const char *str)
{
int value=0;
bool b_plus=true; //判断符号
switch(*str) //过滤符号
{
case '+':
str++;
break;
case '-':
b_plus=false;
str++;
break;
default:
break;
}
while('/0' != *str)
{
value = (value*10)+(*str-'0');
str++;
}
if(!b_plus)
value=-value;
return value;
}
void main()
{
char str[]="-999";
int value=atoi(str);
printf("The result is:%d/n",value);
}
DE>
(2)itoa的实现:
DE>#include<stdio.h>
void itoa(int value, char *str)
{
if (value < 0) //如果是负数,则str[0]='-',并把value取反(变成正整数)
{
str[0] = '-';
value = 0-value;
}
int i,j;
for(i=1; value > 0; i++,value/=10) //从value[1]开始存放value的数字字符,不过是逆序,等下再反序过来
str[i] = value%10+'0'; //将数字加上0的ASCII值(即'0')就得到该数字的ASCII值
for(j=i-1,i=1; j-i>=1; j--,i++) //将数字字符反序存放
{
str[i] = str[i]^str[j];
str[j] = str[i]^str[j];
str[i] = str[i]^str[j];
}
if(str[0] != '-') //如果不是负数,则需要把数字字符下标左移一位,即减1
{
for(i=0; str[i+1]!='/0'; i++)
str[i] = str[i+1];
str[i] = '/0';
}
}
void main()
{
int value = -1212345;
char str[10] = {'/0'}; //记得把str全填充为'/0'
itoa(value, str);
printf("The result is:%s/n", str);
}
DE>