如何在Linux中用C语言创建一个字符串(0x01 0x02 0x03……0x50)?

发布网友

我来回答

3个回答

热心网友

首先,0x50比50大,其次你程序定义的两个指针无法存放字符串,只能用来指向一个已经存在的字符串。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() { char data[0x50+1]={0}; int i;
for ( i=0;i<0x50;i++ ) data[i]=i+1;
data[i]=0;
printf("%s\n",data);
return 0;
}

热心网友

首先,理论上,这个要求上的“字符串”其实不太合理。字符串一般指的是ASCII中的可见字符,而这个从16进制0x01开始的数组,有大部分的内容都是不可见字符(详细参考ASCII表)。如果你需要查看输出这个内容的话,可以使用printf中的“%x”控制符(准确的输出格式可以是“%2x”,详细参考printf的格式化输出),而不是“%c”甚至是“%s”。
其次,你的算法应该使用循环,大致思路参考前面的回答。

热心网友

你的buff 是空指针,应该尝试申请空间

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com