如何将数字字符串转换为数字技巧

文章目录

先介绍三个库函数:atoi、atol、atof,可分别把ASCII编码的字符串转化为int、long、float类型的数字。
头文件:stdlib.h

对于整型(int型)

对于 0~9之间的数字基础方法

原理:ASCII码中,字符‘0’~‘9’对应的ASCII值与字符’0’的差值即为数值。如:

  1. 字符‘8’的ASCII码值是56;
  2. 字符‘0’的ASCII码值是48;
  3. ‘8’-‘0’可等价转换成 56 – 48 = 8。

所以可以这样进行转换:

#include<stdio.h>
int main()
{ 
    char a[5]={ "246"};
    int b[5];
    for(int i=0;i<3;i++)
    { 
        b[i]=a[i]-48;
        printf("%d",b[i]);
    }
    return 0;
}

使用库函数atoi

#include<stdio.h>
#include<stdlib.h>
int main()
{ 
  
    char a[10];
    int t;
    gets(a);
    t=atoi(a);
    printf("%d",t);
    return 0;
}

对于(long型)使用库函数atol

#include<stdio.h>
#include<stdlib.h>
int main()
{ 
  
    char a[20];
    long t;
    gets(a);
    t=atol(a);
    printf("%ld",t);
    return 0;
}


对于浮点型(float)使用库函数atof

#include<stdio.h>
#include<stdlib.h>
int main()
{ 
  
    char a[20];
    float t;
    gets(a);
    t=atof(a);
    printf("%f",t);
    return 0;
}

以上是对字符串的处理,大佬们有补充的请评论。谢谢!

    原文作者:CassielBodhi
    原文地址: https://blog.csdn.net/weixin_46404263/article/details/107344347
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞