日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言十六进制字符串转整数,C语言-提取字符串中的十六进制数字并转换为一个十进制整数输出...

發布時間:2024/9/27 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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语言-提取字符串中的十六进制数字并转换为一个十进制整数输出...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。