基本数据类型和字符串类型的转换
基本数据类型和字符串类型的转换
1. 介绍
- 在程序开发中,经常需要将基本数据类型转成字符串类型(即char数组),或者将字符串类型转成基本数据类型
2. sprintf函数的用法
- sprintf和 平时使用的printf函数的功能很相似。sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛
- 该函数包含在stdio.h的头文件中
3. 基本数据类型转字符串类型
#include<stdio.h>
void main(){
char str1[20];
char str2[20];
char str3[20];
int a = 20984,b=48090;
double d=14.309948;
//说明
//1.sprintf是一个系统函数,可以将结果存放在字符串中
//2.格式化的结果,会存放到str1中
sprintf(str1,"%d %d",a,b);
sprintf(str2,"%.2f",d);
sprintf(str3,"%8.2f",d);//%8.2f含义是格式化后,一共有8位,小数点后占用2位,不够用空格占位
printf("str1=%s str2=%s str3=%s",str1,str2,str3);
getchar();
}
4. 字符串类型转基本数据类型
语法:通过<stdio.h>的函数调用atoi atof即可
#include<stdio.h>
#include<stdlib.h>
void main(){
//字符数组
char str[10]="123456";
char str2[10]="12.67423";
char str3[3]="ab";
char str4[4]="111";
//说明
//1.atoi(str)将str转成整数
int num1 = atoi(str);
short s1 = atoi(str4);
//说明
//1.atof(str2)将str转成小数
double d = atof(str2);
//说明
//1.str[0]表示获取到str3这个字符串(数组)的第一个元素'a'
char c=str3[0];
printf("num1=%d d=%f c=%c s1=%d",num1,d,c,s1);
getchar();
}
5. 注意事项
- 在将char数组类型转成基本数据类型时,要确保能够转成有效的数据,比如可以将"133"转成一个有效的整数,但是不能把"hello"转成一个整数
- 如果格式不正确,会默认转成0或者0.0
6.练习
//函数可以没有返回值,编写一个函数,从终端输入一个整数打印对应的金字塔
//层数totalLevel是通过形参传入
void printStar(int totalLevle){
int i,j,k;
for(i=1;i<=totalLevle;i++){//控制层
//输出空格,使用k控制空格的循环
for(k=1;k<=totalLevle-i;k++){
printf(" ");
}
for(j=i;j<=2*i-1;j++){
if(j==1||j==2*i-1||i==totalLevle){
printf("*");
}else{
printf(" ");
}
}
printf("\n");
}
}
void main(){
int totalLevle = 0;
printf("请输入金字塔的层数");
scanf("%d",&totalLevle);
//调用函数
printStar(totalLevel);
getchar();
getchar();
}
//编写一个函数,从终端输入一个整数(1-9),打印出对应的乘法表
void print99(int n){
int i,j;
for(i=1;i<=n;i++){
//因为每一行都在增加算式,所以使用for循环控制
for(j=1;j<=i;j++){
printf("%d * %d = %d",j,i,i*j);
}
printf("\n");
}
}
void main(){
int n = 0;
printf("请输入n");
scanf("%d",&n);
print99(n);
getchar();
getcahr();
}
//定义函数,实现求两个double数字的最大值,并返回
double getMax(double d1,double d2){
return d1>d2?d1:d2;
}
//定义函数,求出三个int类型数的和,并返回
int getSum(int n1,int n2,int n3){
return n1+n2+n3;
}

浙公网安备 33010602011771号