基本数据类型和字符串类型的转换

基本数据类型和字符串类型的转换

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;
}
相关文章
相关标签/搜索