c语言将十进制转为八进制字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言将十进制转为八进制字符串相关的知识,希望对你有一定的参考价值。
#include <stdio.h>#include <string.h>
void invert(char *str)
char t,*p=str+strlen(str)-1;
while(str<p)
t=*str;
*str=*p;
*p=t;
str++;
p--;
void d2o(int n,char str[])
char *p=str;
while(n)
*p++="01234567"[n%8];
n/=8;
*p='\0';
invert(str);
int main()
int num;
char str[100];
scanf("%d",&num);
d2o(num,str);
puts(str);
追问
看不懂。。解释下吧
追答这个有什么看不懂的,就是不断地对8取余,直到最后原数为0,然后将之前取余得到的数字序列反过来排列
就是和常用的十进制变二进制的方法是类似的,只不过基底是8而已
int main()
int a,x,y,i=0;
int num[20];
printf("输入十进制数:");
scanf("%d",&a);
while((x=a/8)!=0)
y=a%8;
num[i++]=y;
a=x;
num[i]=a;printf("八进制为:");
for(;i>=0;i--)
printf("%c",num[i]);
printf("\n");
追问
这个输出是字符串?居然输出一个笑脸。。。。。
c语言 输入16进制形式的字符串转换成16进制
如题,例如我输入 "FF FD 02 05 FA",转换成十六进制数组 0xFF 0xFD 0x02 0x05 0xFA,我应该怎么写?
参考技术A #include <<a href="https://www.baidu.com/s?wd=stdio.h&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9njNWnvP9nHbsPhnYuWn40ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnH63nHR3njn4rjRYPWb4PWb3r0" target="_blank" class="baidu-highlight">stdio.h</a>>int IsHexChar(char ch)
if((ch>='0' && ch<='9') || (ch>='a' && ch<='f') ||(ch>='A' && ch<='F'))
return 1;
else
return 0;
int main()
char str[1000] = "123342abcdAFB1H";
int cnt = 0;
int i;
printf("input str:\\n");
//gets(str);
i = 0;
while(str[i]&&str[i+1])
if(IsHexChar(str[i]) && IsHexChar(str[i+1]))
cnt++;
printf(cnt==1?"0x%c%c":", 0x%c%c", str[i], str[i+1]);
i++;
i++;
else
break;
printf("\\ncnt = %d\\n", cnt);
return 0;
本回答被提问者和网友采纳
以上是关于c语言将十进制转为八进制字符串的主要内容,如果未能解决你的问题,请参考以下文章
php 如何将 16进制字符串转为16进制字符数组 或者将 2进制字符串转为16进制字符数组
C语言:怎么将十进制数字转换为二进制字符串,谁能帮我写个函数