基本數據類型和字符串類型的轉換

基本數據類型和字符串類型的轉換

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;
}
相關文章
相關標籤/搜索