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而已

参考技术A #include <stdio.h>
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语言字符串转为16进制字符串

C语言字符串转为16进制字符串

C语言:怎么将十进制数字转换为二进制字符串,谁能帮我写个函数

lua语言 如何将字符串整体转换为一个十进制数据 而不按照每个字符转为若干个十进制数

C语言 将99(十进制)转为0x99(十六进制)并输出?