寫乙個函式,輸入乙個十六進製制數,輸出相應的是進製數。
程式設計如下:
#include
#include
#include
void main()
char t[20],c;
long htoi(char );
doprintf("/ninput a hex number:");
gets(t);
printf("decimal number:%ld/n",htoi(t));
printf("continue or not?(y/n)");
scanf(" %c",&c);
}while(c=='y'||c=='y');
getch();
long htoi(char a)
int i;
long n=0;
for(i=0;iif(a[i]>='0'&&a[i]<='9')
n=n*16+a[i]-'0';
else if(a[i]>='a'&&a[i]<='f')
n=n*16+a[i]-'a'+10;
else if(a[i]>='a'&&a[i]<='f')
n=n*16+a[i]-'a'+10;
return(n);
執行:input a hex number:a11
decimal number:2577
continue or not?(y/n)y
input a hex number:decimal number:0
continue or not?(y/n)
紅色為輸入,其他為程式自行輸出。
將程式中接收輸入的十六進製制字元的語句gets(t);改為scanf("%s",t);後程式正常。
input a hex number:a11
decimal number:2577
continue or not?(y/n)y
input a hex number:10
decimal number:16
continue or not?(y/n)
不知道gets和scanf有什麼區別。
scanf和gets的區別
gets函式可以一次接收一行輸入串,其中可以有空格,也就是說空格可以做為字串的一部分輸入.而scanf函式接收的字串不會含有空格,即遇到字空格時,認為字串輸入結束,也就是說空格是scanf預設的結束符號。scanf和gets不能混合使用,如果乙個程式中用scanf的話,一般不能再用gets,反之亦然...
gets和scanf的區別
1 gets 函式原型 char gets char str 功能為 從stdin流中讀取字串,直至接受到換行符或eof時停止,並將讀取的結果存放在buffer指標所指向的字元數 組中。換行符不作為讀取串的內容,讀取的換行符被轉換為 0 空字元,並由此來結束字串。注意 不會判斷上限,以回車結束讀取,...
gets和scanf的區別
函式 gets 字元指標 標頭檔案 stdio.h c中 c 不需包含此標頭檔案 原型 char gets char buffer 功能 從stdin流中讀取字串,直至接受到換行符或eof時停止,並將讀取的結果存放在buffer指標所指向的字元陣列中。換行符不作為讀取串的內容,讀取 接受 的換行符被...