如何在UNIX中将string转换为整数

我有d1="11"d2="07" 。 我想将d1d2转换为整数并执行d1-d2 。 我如何在UNIX中执行此操作?

d1 - d2目前为我返回"11-07"

标准解决方案:

  expr $d1 - $d2 

你也可以这样做:

 echo $(( d1 - d2 )) 

但要注意,这将把07作为一个八进制数字! (所以077 ,但是01010 )。

其中的任何一个都可以在shell命令行下运行。 bc可能是你最直接的解决方案。

使用bc :

 $ echo "$d1 - $d2" | bc 

使用awk

 $ echo $d1 $d2 | awk '{print $1 - $2}' 

使用perl

 $ perl -E "say $d1 - $d2" 

使用Python

 $ python -c "print $d1 - $d2" 

所有的回报

 4 
 let d=d1-d2;echo $d; 

这应该有所帮助。

用这个:

 #include <stdlib.h> #include <string.h> int main() { const char *d1 = "11"; int d1int = atoi(d1); printf("d1 = %d\n", d1); return 0; } 

等等