C语言中如何把一个字符串转成数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中如何把一个字符串转成数字相关的知识,希望对你有一定的参考价值。

例如 char a[10][10]="BF","BB","7F',"00";
转成int b[10][10]=0xBF,0XBB,0X7F,0X00

代码如下,应该存放在b[10]数组中

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()

char a[10][10]="BF","BB","7F","00";
int b[10];
int i,j;
int flag=0;
int n;
int num;
for(i=0;!flag;i++)

n=strlen(a[i]);
num=0;
for(j=0;j<n;j++)

if(a[i][j]>='A'&&a[i][j]<='F')

num+=(a[i][j]-55)*pow(16,(n-j-1));

else
num+=(a[i][j]-48)*pow(16,(n-j-1));

b[i]=num;
if(num==0)
flag=1;

*(b+i)=-1;
for(i=0;*(b+i)!=-1;i++)

printf("0x%08x\n",b[i]);

return 0;
参考技术A //输入任意一个数字,转换为字符串输出#includevoidmain()intn=0;charstr[10]=0;printf("inputanumber:");scanf("%d",&n);sprintf(str,"%d",n);printf("thestringis:[%s]\n",str);

C语言如何把11位16进制字符串转成16进制数?

参考技术A

#include<stdio.h>

#include<stdlib.h>

voidmain()

char*p="0x1b";

char*str;

longi=strtol(p,&str,16);

printf("%d\\r\\n",i);

//输出值为27

参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如’0x’前置字符则会使用16进制做转换、遇到’0’前置字符而不是’0x’的时候会使用8进制做转换。

扩展资料

C语言十进制转2~16进制

#include<stdio.h>

voidtrans(intdata,intbase)

intx[64],k,i=0;

while(data)

x[i]=data%base;

data/=base;

i++;

for(k=i-1;k>=0;k--)

if(x[k]<10)

printf("%d",x[k]);

elseif(x[k]<=16)

printf("%c",'A'+x[k]-10);

intmain(void)

intnum,base;

scanf("%d%d",&num,&base);

if(base<=0||base>16)

printf("dataerror\\n");

return;

printf("number=%dbase=%d\\n",num,base);

trans(num,base);

printf("\\n");

return0;

以上是关于C语言中如何把一个字符串转成数字的主要内容,如果未能解决你的问题,请参考以下文章

C语言中怎么把Int型转成字符型?

c语言如何将数组转成字符串

C语言中如何把一个字符串转化成其ASCII码的数组??

C语言如何把11位16进制字符串转成16进制数?

在C语言中怎么把一个数转换成二进制然后输出

C语言如何把11位16进制字符串转成16进制数?