'Umar_youth喜欢燕姿丶不要做愤青。

菜鸟程序员的编程起步路

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子: 

# include <stdio.h> 
# include <stdlib.h> 

void main (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() 将整型值转换为字符串 
itoa() 将长整型值转换为字符串 
ultoa() 将无符号长整型值转换为字符串 

一  atoi     把字符串转换成整型数 
例程序: 
#include <ctype.h> 
#include <stdio.h> 
int atoi (char s[]); 

int main(void ) 
{    
char s[100]; 
gets(s); 
printf("integer=%d\n",atoi(s)); 
return 0; 

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      把一整数转换为字符串 
例程序: 
#include <ctype.h> 
#include <stdio.h> 
void       itoa (int n,char s[]); 
//atoi 函数:将s转换为整形数 
int main(void ) 
{    
int n; 
char s[100]; 
printf("Input n:\n"); 
scanf("%d",&n); 
         printf("the string : \n"); 
         itoa (n,s); 
return 0; 

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]);

 

posted on 2014-05-10 19:25  Umar喜欢燕姿不做愤青  阅读(239)  评论(0编辑  收藏  举报