0x0000:如何将字符串转化为整数,如何将整数转化为字符串

在编程时,我们经常会碰到这样一类问题,程序读入了一串数字,我们需要对数字进行运算,得出结果(同样也是数字),然后将结果输出。为什么说这是个问题呢?因为往往读入的数字是字符串,而运算过程中需要整数类型或者浮点数类型,但是最后输出结果时又往往需要是字符串类型。

如何解决?以下提供几种我积累的解决方案。

0x00 数字转字符串

方法一:do while循环法

int num;
char strnum[256]={0};
int i=0;
do{
    strnum[i++] = num%10 + '0';
    num /= 10;
}while(num)

注意点:

  1. do while循环内简洁地包容 num == 0 的情况。
  2. 容易忘记写+'0'导致bus错误

缺点:只能实现int类型转化为字符串。

方法二:itoa法 用起来方便快,不仅仅能实现int转字符串,还可以实现double等转字符串,功能强大。

#include 

int num;
char numstr[256] = {0};
itoa(num,numstr,10);//最后一个参数表示进制

方法三:sprintf()

#include 
int num =102313
char numstr[100000] = {0};
sprintf(numstr,"%d",num);

想怎么转就怎么转,记忆方便

0x01 字符串转数字

方法一:累加法

char strnum = "1023231";
int num = 0;
int len = strlen(strnum);
for(int i=0;i

方法二:atoi

#include 
int num = atoi("23141532")

方法三:atof

double num = atof(“2313.321”);

 

你可能感兴趣的:(雕虫小技)