【澳门葡京备用网址】函数详解,将整数n那些数字转变为对应的字符串

[C语言]贯彻函数itoa(int n,char s[]),将整数n这一个数字转换为对应的字符串,保存到s中

#include <stdio.h>
static int i=0;//定义全局变量i 作为数组s[]的下标
int itoa(int n,char s[])
{ 
    if(n<10)
    {
        s[i]=n+'0';
    }
    else 
    {
        itoa(n/10,s);//递归
        i++;
        n=n%10;//最后一位的数字
        s[i]=n+'0';
    }
    s[i+1]='\0';//字符串结束标志
}
int main()
{
    char s[6];
    int num=0;
    printf("input your number->:");
    scanf("%d",&num);
    itoa(num,s);
    printf("%s",s);
    return 0;
}

 

n,char
s[]),将整数n这几个数字转换为对应的字符串,保存到s中 #include
stdio.hstatic int i=0;//定义全局变量i 作为数组s…

C语言提供了多少个正式库函数,能够将随机档案的次序(整型、长整型、浮点型等)的数字调换为字符串。

 C语言提供了多少个正式库函数,能够将轻巧档期的顺序(整型、长整型、浮点型等)的数字转变为字符串。以下是用itoa()函数将整数转 换为字符串的三个例子: 

c语言完结,将整数n这么些数字转变为对应的字符串

#include<stdio.h>
int main ()
{
     int i=0;
     char arr[10]={0};
     int n=0;
     int j=0;
     scanf("%d",&n);
     if(n<0)
     {
          n=-n;
     }
     while(n)
     {
          arr[j]=n%10;
          n/=10;
          j++;
     }
     for(i=j-1; i>=0; i--)
     {
          printf("%d ",arr[i]);
     }
     return 0;
}

 

#includestdio.hint main (){ int i=0; char arr[10]={0}; int n=0; int
j=0; scanf(%d,n); if(n0) { n=-n; } while(n) {…

【澳门葡京备用网址】函数详解,将整数n那些数字转变为对应的字符串。1.int/float to string/array:

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

C语言提供了多少个专门的学业库函数,能够将随机档次(整型、长整型、浮点型等)的数字转变为字符串,上面罗列了各函数的主意及其表达。
● itoa():将整型值转变为字符串。
● ltoa():将长整型值转变为字符串。
● ultoa():将无符号长整型值转变为字符串。
● gcvt():将浮点型数转变为字符串,取四舍五入。
● ecvt():将双精度浮点型值调换为字符串,转变结果中不分包十进制小数点。
● fcvt():钦命位数为转移精度,别的同ecvt()。

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

除其它,还足以行使sprintf多元函数把数字调换来字符串,其比itoa()类别函数运维速度慢


2. string/array to int/float C/C++语言提供了多少个正规库函数,可以将字符串转变为私行档次(整型、长整型、浮点型等)。

itoa()函数有3个参数:第贰个参数是要更改的数字,第一个参数是要写入调换结果的目的字符串,第多个参数是更动数字时所用 的基数。在上例中,转变基数为10。10:十进制;2:二进制… 
itoa并非二个行业内部的C函数,它是Windows特有的,倘若要写跨平台的主次,请用sprintf。  
是Windows平台下扩充的,标准库中有sprintf,成效比那些越来越强,用法跟printf类似:  

● atof():将字符串调换为双精度浮点型值。
● atoi():将字符串转换为整型值。
● atol():将字符串转换为长整型值。

strtod():将字符串转变为双精度浮点型值,并告知不能够被撤换的装有盈余数字。
● strtol():将字符串调换为长整值,并报告不可能被撤换的具备盈余数字。

strtoul():将字符串调换为无符号长整型值,并告诉不可能被转移的持有盈余数字。

char str[255];  
sprintf(str, “%x”, 100); //将100转为16进制表示的字符串。  

以下是用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() 将整型值转变为字符串 

itoa()函数有3个参数:第一个参数是要转换的数字,第贰个参数是要写入调换结果的靶子字符串,第多个参数是更改数字时所用
的基数。在上例中,转变基数为10。10:十进制;2:二进制…

itoa() 将长整型值转变为字符串 

itoa实际不是三个标准的C函数,它是Windows明知故犯的,假若要写跨平台的顺序,请用sprintf。是Windows平台下扩张的,规范库中有sprintf,功效比那一个越来越强,用法跟printf类似:

ultoa() 将无符号长整型值转换为字符串 

char str[255];
sprintf(str, “%x”, 100); //将100转为16进制表示的字符串。

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

函数名 用

itoa() 将整型值调换为字符串
itoa() 将长整型值调换为字符串
ultoa() 将无符号长整型值调换为字符串

一、atoi()——把字符串转变来整型数

考试的地方:字符串调换为数字时,对相关ASCII码的明亮。

 

C实现:
#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;
}

C++实现:
1    #include <iostream>
2    using namespace std;
3  
4    int str2int(const char *str)
5    {
6        int temp = 0;
7        const char *ptr = str;  //ptr保存str字符串开首
8  
9        if (*str == ‘-‘ || *str == ‘+’)  //如若第叁个字符是正负号,
10       {                      //则移到下多个字符
11           str++;
12       }
13       while(*str != 0)
14       {
15           if ((*str < ‘0’) || (*str > ‘9’)) 
//尽管当前字符不是数字
16           {                       //则退出循环
17               break;
18           }
19           temp = temp * 10 + (*str – ‘0’);
//假如当前字符是数字则总计数值
20           str++;      //移到下一个字符
21       }  
22       if (*ptr == ‘-‘)    
//要是字符串是以“-”初阶,则转换来其相反数
23       {
24           temp = -temp;
25       }
26 
27       return temp;
28   }
29 
30   int main()
31   {
32       int n = 0;  
33       char p[10] = “”;
34 
35       cin.getline(p, 20);   //从极限获取叁个字符串
36       n = str2int(p);      //把字符串转变来整型数
37      
38       cout << n << endl;
39 
40       return 0;
41   }

二、itoa()——把一整数改造为字符串

通过把整数的诸位上的数字加“0”调换到char类型并存到字符数组中。但是要留心,须要选择字符串逆序的法门

 

C语言实现:
#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]);
}

是int 转string类型的四个函数

 

C++实现:

1    #include <iostream>
2    using namespace std;
3   
4    void int2str(int n, char *str)
5    {
6        char buf[10] = “”;
7        int i = 0;
8        int len = 0;
9        int temp = n < 0 ? -n: n;  // temp为n的相对值
10  
11       if (str == NULL)
12       {
13           return;
14       }
15       while(temp)
16       {
17           buf[i++] = (temp % 10) + ‘0’; 
//把temp的每壹个人上的数存入buf
18           temp = temp / 10;
19       }
20  
21       len = n < 0 ? ++i: i; 
//借使n是负数,则多供给一人来存款和储蓄负号
22       str[i] = 0;            //末尾是停止符0
23       while(1)
24       {
25           i–;
26           if (buf[len-i-1] ==0)
27           {
28               break;
29           }
30           str[i] = buf[len-i-1];  //把buf数组里的字符拷到字符串
31       }
32       if (i == 0 )
33       {
34           str[i] = ‘-‘;          //如若是负数,增添七个负号
35       }
36   }
37  
38   int main()
39   {
40       int nNum;
41       char p[10];
42  
43       cout << “Please input an integer:”;
44       cin >> nNum;
45       cout << “output: ” ;
46       int2str(nNum, p);        //整型转变来字符串
47       cout<< p << endl;
48  
49       return 0;
50   }

 

参考阅读:


 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website