c语言中整型和字符串之间的转换

整型转字符串

整型转字符串有两种方式实现,分别是通过拓展函数itoa或者是输入输出函数sprintf来实现。具体细节如下:

itoa()函数

itoa (integer to alphanumeric)是把整型数转换成字符串的一个函数。
windows环境下,想要使用这个函数需要引用<stdlib.h>的头文件. 文件中对itoa的声明如下:

char* itoa(int value,char*string,int radix);

value就是要转换的整型,char *string就是转换后的字符串的地址,而radix是用来选择进制的.
itoa函数的用法如下

#include <stdlib.h>
#include <stdio.h>
int main()
{
	int number1 = 123456;
	int number2 = -123456;
	char string[16] = {0};
	itoa(number1,string,10);
	printf("数字:%d 转换后的字符串为:%s\n",number1,string);
	itoa(number2,string,10);
	printf("数字:%d 转换后的字符串为:%s\n",number2,string);
	return 0;
}

运行的结果为:
在这里插入图片描述
可以看出,itoa(number1,string,10);这一步,itoa将number1的整型转换成了字符串并且存储在string里面,并且这个字符串是十进制的,以后radix为10. 如果将这个10改成2,则运行结果为:
在这里插入图片描述

sprintf()函数

sprintf函数在头文件<stdio.h>里面,函数声明如下:

int sprintf( char *buffer, const char *format [, argument,] );

其中buffer是用来存储转换后的字符串,format则是转换的格式,后续的参数是任意个的. 具体使用方法如下:

#include <stdio.h>
int main()
{
	int number1 = 123456;
	int number2 = -123456;
	char string[16];
	sprintf(string, "%d", number1);
    printf("string = %s\n", string);
	return 0;
}

运行结果:
在这里插入图片描述
这里sprintf(string, "%d", number1);将number1通过%d的格式转换成字符串,然后存储在string里面. 因此打印出来结果为string = 123456 如果更改sprintf中的format, 改成sprintf(string, "the value of string is %d", number1);,其他不变,再次运行程序,结果为:
在这里插入图片描述
可见,sprintf中的format会将%d中的内容替换成后面的number1,再将整个字符串赋值给string,因此,如果我们只想要得到整型的字符串,只需要将format设置为%d即可,如果添加了其他的内容,string的内容就不只是number1的字符串形式了.

字符串转整型

和整型转字符串类似,也有两种方法:atoi函数和sscanf函数

atoi函数

和itoa函数类似,只是将字符串转换成整型,函数声明在<stdlib.h>中,函数的格式如下:

int  atoi(const char *nptr);

nptr是需要转换的字符串.
具体使用方法如下:

#include<stdio.h>
#include<stdlib.h> 
 
int main()
{
	printf("字符串\"123456\"转换为数字:%d\n",atoi("123456"));
	printf("字符串\"-123456\"转换为数字:%d\n",atoi("-123456"));
	return 0;
}

运行结果为:
在这里插入图片描述

sscanf函数

具体使用方法如下:

#include <stdio.h>
int main()
{
	char str[10] = "12345";
    int a;
    sscanf(str, "%d", &a);
    printf("%d\n", a);
	return 0;
}

运行结果为:
在这里插入图片描述sscanf将str的内容通过%d格式的转换,转换成整型后,将整型存储在a的地址中.

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值