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

整型转字符串

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

itoa()函数

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

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

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

#include 
#include 
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函数在头文件里面,函数声明如下:

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

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

#include 
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函数类似,只是将字符串转换成整型,函数声明在中,函数的格式如下:

int  atoi(const char *nptr);

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

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

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

sscanf函数

具体使用方法如下:

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

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

你可能感兴趣的:(c语言,开发语言)