主题:求助
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{char s[6],*p; int i,n;
printf("enter a string (octal digits):\n");
gets(s);
if(strlen(s)>5)
{ printf("error :string too longer!\n");
exit(0);
}
for(i=0;s[i];i++)
if((s[i]<'0')||(s[i]>'7'))
{ printf("error :it is not octal digits !\n");
exit(0);
}
printf("the octal string:\n");
puts(s);
p=s;
n=*p-'0;
p++;
while(*p!=\0)
{ n=n*8+*p-'0';
p++;
}
printf("%s is converted to integer number :%d\n",s,n);
}
这段代码的意思是将输入的最多为5为数的八进制数转化为十进制数,但代码中的
n=*p-'0;
p++;
while(*p!=\0)
{ n=n*8+*p-'0';
p++;
我看不太明白,请那位高手帮帮忙!!!本人将不胜感激。
#include<string.h>
#include<stdlib.h>
main()
{char s[6],*p; int i,n;
printf("enter a string (octal digits):\n");
gets(s);
if(strlen(s)>5)
{ printf("error :string too longer!\n");
exit(0);
}
for(i=0;s[i];i++)
if((s[i]<'0')||(s[i]>'7'))
{ printf("error :it is not octal digits !\n");
exit(0);
}
printf("the octal string:\n");
puts(s);
p=s;
n=*p-'0;
p++;
while(*p!=\0)
{ n=n*8+*p-'0';
p++;
}
printf("%s is converted to integer number :%d\n",s,n);
}
这段代码的意思是将输入的最多为5为数的八进制数转化为十进制数,但代码中的
n=*p-'0;
p++;
while(*p!=\0)
{ n=n*8+*p-'0';
p++;
我看不太明白,请那位高手帮帮忙!!!本人将不胜感激。