字符串和整型之间的相互转换

1.atoi()将字符串转换成整型

头文件:#include <stdlib.h>

语法:int atoi (const char * str);
该函数会扫描字符串,识别数字和正负符号。

#include <stdio.h>
#include <stdlib.h>
int main(void) {
    
    
	char str1[] = "234529";
	char str2[] = "-234529";
	char str3[] = "aaasdf234529";
	char str4[] = "aaasdfcdk";
	int p1,p2,p3,p4;
	p1 = atoi(str1);
	p2 = atoi(str2);
	p3 = atoi(str3);
	p4 = atoi(str4);
	printf("%d\n%d\n%d\n%d", p1,p2,p3,p4);
}

结果:
结果
可见有字母或其他不是数字的字符时,函数就会返回整型0.

2.itoa()将整型数转换为字符串

头文件:#include<stdlib.h>

语法:
char* itoa(int value,char*string,int radix);
//value: 要转换的整数,string: 转换后的字符串,radix: 转换进制数,如2,8,10,16 进制等。

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

结果

3,sprintf()把整型打印成字符串,保存在数组中

头文件:#include < stdio.h>

语法:int sprintf(char *str, const char *format, …)
str为要写入的数组,参数不定。

区别:
sprintf():输出到一个字符串数组中。
printf():输出到控制台。

例如:

#include <stdio.h>
int main()
{
    
    
    int number = 123456;
    char str[10];
    sprintf(str, "%d", number);
    printf("%s", str);
    return 0;
}

结果
(也可以结合其他字符串,一起写入。)

4.sscanf()将字符串变为整型

头文件:#include< stdio.h>

语法:
int sscanf(const char *str, const char *format,…);

区别:
sscanf():从字符串数组中输入
scanf():由键盘输入

例子:

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

结果
另外sscanf()还有很多用途,

猜你喜欢

转载自blog.csdn.net/weixin_52340203/article/details/114440766