c語言字串轉換為16進位制和10進位制數字
字串轉換為16進位制或者10進位制:1、使用自己編寫的函式。2、使用庫函式。
將字串轉換為16進位制兩種方法的程式碼:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int HexStr2Int(char *buf)
{
int result = 0;
int tmp;
int len,i;
len = strlen(buf);
printf("len=%d \r\n",len);
for(i = 0;i<len;i++)
{
if(*buf>='A'&& *buf<= 'Z')
tmp = *buf-'A'+10;
else if(*buf>='a'&& *buf<= 'z')
tmp = *buf-'a'+10;
else
tmp = *buf-'0';
result*=16;
result+=tmp;
buf++;
}
return result;
}
將字串轉換為十進位制三種方法的程式碼:
#include<stdio.h>
#include<stdlib.h>
int Myatoi(char *buf)
{
int result = 0;
char ch;
while((ch = *(buf++)) != '\0')
{
result = result*10 + ch-'0';
}
return result;
}
void main()
{
char *str = "12345";
int val,val2 = 0;
int val3;
val = atoi(str);
val2 = Myatoi(str);
val3 = strtol(str,NULL,10);
printf("val=%d,val2=%d,val3=%d \r\n",val,val2,val3);
}
因為之前串列埠通訊中經常會用到,記錄在此方便以後自己查閱。