字符串和整型之间的相互转换
1.atoi()将字符串转换成整型
头文件:#include
语法: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
语法:
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()还有很多用途,
还没有评论,来说两句吧...