c语言十六进制字符串转整数,C语言-提取字符串中的十六进制数字并转换为一个十进制整数输出...
問題描述:提取字符串中的十六進制數字并轉換為一個十進制整數輸出
源代碼:
/*十六進制轉換成十進制*/
#include
int main(void)
{
int i,k;
char hexad[80],str[80];
long number;
printf("Enter a string:");
i=0;
while((str[i]=getchar())!='\n')
i++;
str[i]='\0';
/*過濾非十六進制字符后生成新字符串*/
k =0;
for(i=0;str[i]!='\0';i++)
if(str[i]<='9'&&str[i]>='0'||str[i]<='f'&&str[i]>='a'||str[i]<='F'&&str[i]>='A'){/*判斷是數字字符*/
hexad[k]=str[i];
k++;
}
hexad[k]='\0';
/*輸出十六進制新字符串*/
printf("New string:");
for(i=0;hexad[i]!='\0';i++)
putchar(hexad[i]);
printf("\n");
/*轉換為十進制數*/
number=0;
for(i=0;hexad[i]!='\0';i++){
if(hexad[i]<='9'&&hexad[i]>='0')
number=number*16+hexad[i]-'0';
if(hexad[i]<='F'&&hexad[i]>='A')
number=number*16+hexad[i]-'A'+10;
if(hexad[i]<='f'&&hexad[i]>='a')
number=number*16+hexad[i]-'a'+10;
}
printf("Number=%ld\n",number);
return 0;
}
運行結果:
進制轉換
程序心得:
if(hexad[i]<='f'&&hexad[i]>='a')
number=number*16+hexad[i]-'a'+10;
這里要注意“+10”
程序參數:
輸出大小: 148.888671875 KiB
編譯時間: 0.31s
總結
以上是生活随笔為你收集整理的c语言十六进制字符串转整数,C语言-提取字符串中的十六进制数字并转换为一个十进制整数输出...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux shell 获取参数 $,L
- 下一篇: oracle rman 检查坏块,Ora