请大佬指点下:c语言长整数转化成16进制字符串,可字符串不显示?

本题要求实现一个将长整数转化成16进制字符串的简单函数
其中x是待转化的十进制长整数,p指向某个字符数组的首元素。函数f的功能是把转换所得的16进制字符串写入p所指向的数组。16进制的A~F为大写字母。
输入样例
123456789
输出样例 75BCD15
代码如下 #include
#define MAXN 10

void f( long int x, char *p );

int main()
{
long int x;
char s[MAXN] = "";

scanf("%ld", &x);
f(x, s);
printf("%s\n", s);

return 0;

}
void f( long int x, char p ){
int beichu=x,yu,i,j,t=0;char *k=p;
if(x>0){ while(yu==beichu)
{yu=beichu%16;
if(yu *(p+9)=yu;
else *(p+9)=yu+'A'-10;
p-=1;
beichu=beichu/16;
t+=1;}
for(p=k,j=10-t;j for(p=k,i=10-t;i>=0;i--)
{
(p+j-1)=*(p+j);
*(p+j)='\0';}}

else{ p='-';
while(yu==beichu)
{yu=beichu%16;
if(yu *(p+9)=yu;
else *(p+9)=yu+'A'-10;
p-=1;
beichu=beichu/16;}
for(p=k,j=10-t;j for(p=k,i=10-t;i>=1;i--)
{
(p+j-1)=*(p+j);
*(p+j)='\0';}
}}
例如输入“-125”只显示“- ”
输入12345679显示“ ”
请问究竟哪里错了呢?


2个回答

for(p=k,j=10-t;j for(p=k,i=10-t;i>=0;i--)
这程序根本就不能编译,完全不对,基本语法都错了。

自己参考下 https://blog.csdn.net/qq_43161839/article/details/82532894 这个吧。

weixin_44093196
洛克王国公主 谢谢!
9 个月之前 回复

你用void去写 没有返回值啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
长整数转化成16进制字符串
6-3 长整数转化成16进制字符串(15 分) 本题要求实现一个将长整数转化成16进制字符串的简单重点内容函数。 函数接口定义: void f( long int x, char *p ); 其中x是待转化的十进制长整数,p指向某个字符数组的首元素。函数f的功能是把转换所得的16进制字符串写入p所指向的数组。16进制的A~F为大写字母。 裁判测试程序样例: #include &l...
长整数转化成十六进制字符串
设计一个函数void f(long int x,char *p),其中x是待转化的十进制长整数,p指向某个字符数组的首元素。函数的功能是把转换所得的十六进制字符串写入p所指向的数组。设计函数main(),输入一个长整数,调用f(),输出十六进制结果。 样例输入:123456789 样例输出:75BCD15 注意 本程序假设输入的长整数最长十位 若程序有错请指出,感谢 #include <st...
求C语言16进制字符串转化成字符串的方法。100分!
我有一段类似这样的字符串:"7C7C307C724C7C267C7C7C7C7C3A7C417C7C7" 其中每两位两位的代表一个字符,类似:“7C”对应“|”、“24”对应“$”、“41”对应“A”、“26”对应“&”等等。。。想用纯C写这样一个函数,跪求大神帮忙,求思路求代码!
C语言 字符串转16进制
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() {     char *str="12345678";     int a[4];     int i=0;     for(i=0;i<4;i++)     {         sscanf(str,"%2x",&...
关于将16进制的字符串转化成字符串
string dd = "23876ab87d09f97bcf..."rn要转化成它对应的字符串 不是"23876ab87d09f97bcf..."rnrn可能是"KEHSDXNZSGDYSA...."rnrn
Java 16进制字符串转化成十六进制数字
可以先将字符串转化为整型,后面有需要了,再将整型转化为16进制的数字 int parseInt = Integer.parseInt("cc", 16); System.out.println(parseInt); String hexString = Integer.toHexString(parseInt); System.out.println(hexString);
16进制字符串转化成int的问题
用Integer.parseint()转化,一般的数字没错,但我要把"ffffffff"转化成-1就出异常了,rn这种该怎么转化?
如何把字符串转化成16进制
Select * From admin 转换为 16 进制后就成了 rnrn0x530065006C0065006300740020002A00200066rn0072006F006D002000610064006D0069006E00 rnrnsql server可以有什么函数可以实现这种转化吗?
如何将wav转化成16进制字符串?
后缀为wav的音频文件能否转换为16进制字符串?rn通过PHP解析称png如下:rn[img=http://img.my.csdn.net/uploads/201302/03/1359893538_2847.jpg][/img]rn是否也可以转化成16进制的字符串?我对wav文件不是很了解,求教了谢谢
JAVA 长整数与16进制字符串互相转换
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!                一般情况下,我们在对j
求16进制字符串转换方法,请高手指点
unsigned char In[] = 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff;rnrn转换为 字符串 unsigned char out = "00112233445566778899aabbccddeeff";rnrn求高人指点
16进制和字符串显示切换
这是用labview 编写的一个16进制和字符串显示切换程序,得到的字符串“~?~”经转换后“7E 00 A0 20 00 00 00 00 80 90 0D ”,可以直接调用,为大家以后的开发工作,节省不少时间
C语言字符串转化成整数代码
C语言字符串转化成整数代码代码,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,。
十进制字符串转化成十六进制字符串(不定长)
这里写自定义目录标题设计思路一般思路对于不定长字符长怎么处理?将数据添加到buffer中完整代码 设计思路 一般思路 一般如果需要将十进制转化成十六进制,先定义一个int data,然后从高位到地位遍历十进制字符串,将数据一位位的添加到data中,最后将data转成十六进制字符串输出就可以了,那么先来看看怎么转化成data int string2int(const char *src_buf) {...
C语言 字符串和16进制数的互相转化
16进制到字符串: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int a[6] = {0x12,0x34,0x56,0x78,0xab,0xcd}; char *str = (char*)malloc(32); memset(str,0,32); i...
16进制字符串转化成10进制数的问题
想把 'A'rn转化成 10 用哪个函数?rn谢谢
16进制数转化成字符串(包括中文)
java代码,从16进制数直接转化成字符串(包括中文)简单好用
如何将字符串转化成16进制字符数据
C语言下:rnchar tmp[10] = "123456";如何可以转换成 unsigned char tmp2[3]; tmp2[0] = 0x12;tmp2[1] = 0x34;tmp2[2] = 0x56;
一种输入16进制字符串,转化成整数的算法
#include "stdio.h" #include "stdlib.h" int main() { char *s = malloc(100); int i; int data = 0; printf("input your hex string:"); scanf("%s", s); for(i = 0; i < strlen(s); i++) { if(s[i] ...
perl怎样将字符串转化成16进制?
有大量的字符串(如下),怎样将这些字符串转化成16进制?rn比如将字符串“dee4de0”转化成十六进制的dee4de0,该如何转化?谢谢rnrndee4de0rndf5a40rndf7630rndf7cb60rndf8b870rndfa5b40rndfbf6f0rndfc4270rndfc8b70rndfcd6f0rndfd7f0rndfe5500rndff6c50rne06c00rne01580rne023580rne024310rne062f40rne07b750rne0809e0rne086980rne0bb8a0rne0d7690rne0f8470rne0fa530rne12b4e0rne12e3b0rne12fee0rne134d60rne1398e0rne13e760rne17b4d0rne195720rne1b4df0rne1b5c80rne1dba00
16进制数字转化成字符串输出的小问题
如何让 int a = 10 输出为 16进制表示的字符串?rnrn是 0xA 或者是 \u000A ?rnrn最后要得到的是字符串
字符串转化成16进制!!谢谢各位大哥了!
读一个文件后缀为.ilg,把里面的字符串欲全部转化成16进制显示出来,有代码的大哥给贴以下,不胜感激,已经两天了!我还没有弄出来呢!快疯了
字符串转16进制字符串,16进制字符串转字符串
编程中偶尔会用到字符串与16进制的互转,废话不多说,直接上代码 /**字符串转换为16进制字符串 **/ public static String stringToHexString(String s) { char[] chars = "0123456789ABCDEF".toCharArray(); StringBuilder sb =
字符串转化成时间/时间转化成字符串
dim sdate as daterndim edate as daternrnstr1 = "20040901" 怎样转化成日期型rn日期型怎样转化成字符型
16进制转换成字符串16进制转换成字符串16进制转换成字符串16进制转换成字符串
16进制转换成字符串16进制转换成字符串16进制转换成字符串16进制转换成字符串
c语言:字符串与字符串指针变量
字符数组和字符指针变量都能实现字符串的存储和运算,但它们之间是有区别的,主要有以下几点: 1.字符数组由若干个元素组成,每个元素存放一个字符,而字符串指针变量中存放的是地址(字符串的首地址)。 例: #include"stdio.h" void main() { charstring1[] = "i am a student"; char*string2 = "i am a
C 将字符串转化成数字
//*********************************************** //函数功能:将字符串转化成数字 //入口参数:str:需要转化的字符串;size:最大长度 //出口参数:转化后的数字 //*********************************************** int nbiot_atoi( char *str, int ...
字符串到16进制
在utraledit32中16进制编辑器中查看“新建”这个字符串,得到D0 C2 BD A8rn请问在C#中如何得到这样的结果?utraledit32用的是什么编码呢?
16进制字符串
有4个字节的数组 char str[4] =0x01,0x02,0x01,0x0a;rn现在希望将这数组转为十进制的整型,该如何做?rn我希望得到的结果是0x0102010a = 16908554rn请教了!
字节数组转16进制字符串,16进制字符串转字节数组,10进制字符串转16进制字符串,16进制字符串转10进制字符串
字节数组转16进制字符串,16进制字符串转字节数组,10进制字符串转16进制字符串,16进制字符串转10进制字符串
C 16进制数据转字符串
近期项目中用到16进制数据与字符串互转算法,但网络上搜索到的算法都有些问题,无奈自已造轮子,该算法已在项目中使用。 【注:代码在VS2015环境下编译通过】
C语言两个长整数的和
C语言:计算两个长整数的和 包括正负号的运算 很不错的
长整数四则运算 C语言
首先对输入串进行输入格式判断,如果判断不正确则重新输入,输入正确将输入串存储在链表中 。根据链表的存储结果和相应算法对链表进行相应的操作。判断输入串是整数还是负数决定是否输出‘-’,对两串的绝对值的大小进行比较,并根据四则运算控制符的符号来判断进行的运算和符号标识位的值。
如何将字符串转化成二进制流的字符串了?
如何将字符串转化成二进制流的字符串了?
ANSI字符串转化成unicode字符串
一个unicode字符串,转换成ANSI字符串以实现rn[code=C#]rnpublic static string UnicodeToAscii(string paramstr)rn rn if (paramstr.Length > 0)rn rn byte[] array = System.Text.Encoding.ASCII.GetBytes(paramstr);rn string str = null;rn for (int i = 0; i < array.Length; i++)rn rn int asciicode = (int)(array[i]);rn str += Convert.ToString(asciicode);rn rn return str;rn rn elsern rn throw new Exception("Unciode Code is not valid.");rn rn rn[/code]rn如何再将上面的 str 转回来呢,rn求详细代码,立马结贴
字符串与16进制字符串相互转化
一、ASCII字符串转换为16进制字符串 /** * @param s 字符串 * @return 16进制字符串 * @desc 字符串转换为16进制字符串 */ public static String toHexString(String s) { String str = ""; for (i
字符串16进制数字转换到Ascll字符串
16进制数字转换到Ascll的原理也比较简单,由于unsignal char是8位数据 (这里用unsignal char的原因是表示的数字大小为0-255,用16进制数字FF表示) 可以包含2位16进制数据,所以由2个16进制数字char转换为一个Ascll unsignal char;函数定义如下:int HexToChar(unsigned char* dst,const void
C语言16进制转字符串,并从文件中查询到这个16进制字符串问题解析
编写了一个底层读取设备ID 并与到已有的库里面查询这个ID是否存在的测试代码。遇到了一些问题,在次进行分析一下,我的环境是ubuntu和android ndk,测试这段代码,两个有所不同:直接上代码: #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; //十六进制转换为字符,位转换 ...
字符串和长整数的相互转换(高手请进)
_i64toa在非windows下编程无法使用。rn如何自己写一个类似的函数(用标准C函数)。rn请大家帮忙。
16进制字符串转为16进制数字
自己写的16进制字符转转为16进制数字,函数已经封装好String2Hex(CString str, CByteArray &hexdata),欢迎大家使用
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表