c语言基础,急急急急急急急急
(1)写一函数 int chtoint(char s[]);能把字符串s中的字符串(16进制)转换成int型值(10进制),如果s中的字符串是“-A23B”,则应返回- 41531。(要求用字符数组实现)(2)写一函数 char* inttoch(int i);能把整数i中的数字(10进制)换成字符串(16进制),如果i= 41531,则应返回“A23B”。(要求用指针实现)
----------------解决方案--------------------------------------------------------
哎,十六进制好象没有负数啊
关于你的2个问题,详见“ssanf”函数。(有两个s)
----------------解决方案--------------------------------------------------------
这个是我写的,敬请指教!
#include "Stdio.h"
#include "Conio.h"
#include "ctype.h"
#define N 20
char str[N];
unsigned long int power(int base,int exp)
{
int i;
unsigned long int mid=1;
for(i=0;i<exp;i++)
{
mid*=base;
}
return mid;
}
long chtolong(char *ps)
{
unsigned long int ch;
int len, i;
long digit=0;
char *s=ps;
len=strlen(s);
for(i=0;i<len;i++,s++)
{
if(isalpha(*s))
{
ch=tolower(*s)-87;
digit+=power(16,len-1-i)*ch;
}
else if(isdigit(*s))
{
ch=*s-'0';
digit+=power(16,len-1-i)*ch;
}
else if(*s=='+'||*s=='-')
{
; /*printf("%c",*s);*/
}
else
{
printf("\nInput error!!!\n");
return 0;
}
}
if(*ps=='-')
digit=-digit;
return digit;
}
char *longtoch(long int n)
{
int i=1,j, k;
char ch;
str[0]=0;
if(n<0)
{
str[0]='-';
n=-n;
}
while(n!=0)
{
if(n%16>=10)
str[i++]=n%16+87;
else
str[i++]=n%16+48;
n/=16;
}
j=(i-1)/2;
for(k=1;k<=j;k++)
{
ch=str[k];
str[k]=str[i-k];
str[i-k]=ch;
}
return str;
}
int main(void)
{
long int in, out;
int i;
printf("\nInput a string:\n");
gets(str);
out=chtolong(str);
printf("\nOutput a long int from string:%ld\n",out);
getch();
printf("\nInput a long int digit:\n");
scanf("%ld",&in);
longtoch(in);
printf("\nOutput a string from a long int :%s\n",str);
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
那个啥,是数字就有正负之分吧?看是原码还是补码或者直接给你符号……
刷完版了,去睡觉……明天早晨起来看《琴帝》,每天早晨有新小说看的感觉真舒服啊……
----------------解决方案--------------------------------------------------------
三楼的代码写得不好
[color=white]
----------------解决方案--------------------------------------------------------
我在看《刑名师爷》,超好看
还有《恶魔法则》也不错。
前段时间看到了一个《修真的电脑程序员》,我郁闷ing……
----------------解决方案--------------------------------------------------------