c语言stringtohex简介

这篇文章告诉你关于C语言stringtohex和相应的知识点。希望对你有帮助,也别忘了收藏这个站点。

这篇文章的列表: 1.c如何将string转换成char* 2.设计一个程序,输入一个十进制整数,输出相应的十六进制数。设计一个函数实现数制转换。 3.C字符串转换成十六进制时不要用sprintf。 4、toHexString 如何将字符串转换成字符* 1.如果要将string转换成char*,可以使用string提供的函数c_str()或者函数data()。data返回不带终止符' \0 '的字符串内容,而c_str()返回以' \ 0 '结尾的字符数组。

2、const char * c _ str();

c_str()函数返回一个指向常规C字符串的指针,其内容与此字符串相同。

这是为了兼容C语言,C语言没有字符串类型,所以C中必须通过string类对象的成员函数c_str()将string对象转换成string样式。

注意:必须使用strcpy()函数来操作c_str()方法返回的指针。

例如,最好不要这样做:

char * c;

string s = " 1234

c = s . c _ str();//C最后指向的内容是垃圾,因为S对象被析构,其内容被处理。

应该这样用:

Char c设计一个程序,输入一个十进制整数,输出相应的十六进制数。设计一个函数实现数制转换。 //C语言实现:

# includestdio.h

void main()

{ char b[]= " 0123456789 abcdef ";

long int n,x;

int i,a[40];

printf("\n请输入n = ");

scanf("%ld ",n);

x = n;I = 0;

while(x0)

{a[i]=x;

x = x/16;

我;

}

while(i0)

{printf("%c ",b[a[I-1]]);

I-;

}

printf(" \ n ");

}

对于大数转换,可以使用以下程序:

#包含“Stdio.h”

#包含“Conio.h”

char结果[100];

int pos

void change(int * num);

int main(void)

{

字符串[100];

int num[100];

int bin[300]= { 0 };

int quot[100],residue = 0;

int i,j,k=0,后缀=0,索引= 0;

puts("输入一个小数:");

gets(str);

for(I = 0;伊斯特伦(str);num[i]=str[i]-48,I);

j = I-1;

而(j=0)

{

num[j]%2?(bin[k]= 1):(bin[k]= 0);

while(index=j)

{

残差= num[index];

如果(余数=2)

quot[后缀]=残数/2;

else if(索引)

quot[后缀]= 0;

残差=(num[index]% 2)* 10;

指数;

}

for(I = 0;isuffixnum[i]=quot[i],I);

j =后缀-1;

剩余=后缀=索引= 0;

}

for(I = 0;ik;change(bin i),I = 4);

for(I = pos-1;I = 0;printf("%c ",result[i]),I-);

getch();

返回0;

}

无效更改(int *num)

{

if(num[3]= = 0 num[2]= = 0 num[1]= = 0 num[0]= = 0)

sprintf(结果位置," %c "," 0 ");

if(num[3]= = 0 num[2]= = 0 num[1]= = 0 num[0]= = 1)

sprintf(结果位置," %c "," 1 ");

if(num[3]= = 0 num[2]= = 0 num[1]= = 1 num[0]= = 0)

sprintf(结果位置," %c "," 2 ");

if(num[3]= = 0 num[2]= = 0 num[1]= = 1 num[0]= = 1)

sprintf(结果位置," %c "," 3 ");

if(num[3]= = 0 num[2]= = 1 num[1]= = 0 num[0]= = 0)

sprintf(结果位置," %c "," 4 ");

if(num[3]= = 0 num[2]= = 1 num[1]= = 0 num[0]= = 1)

sprintf(结果位置," %c "," 5 ");

if(num[3]= = 0 num[2]= = 1 num[1]= = 1 num[0]= = 0)

sprintf(结果位置," %c "," 6 ");

if(num[3]= = 0 num[2]= = 1 num[1]= = 1 num[0]= = 1)

sprintf(结果位置," %c "," 7 ");

if(num[3]= = 1 num[2]= = 0 num[1]= = 0 num[0]= = 0)

sprintf(结果位置," %c "," 8 ");

if(num[3]= = 1 num[2]= = 0 num[1]= = 0 num[0]= = 1)

sprintf(结果位置," %c "," 9 ");

if(num[3]= = 1 num[2]= = 0 num[1]= = 1 num[0]= = 0)

sprintf(结果位置," %c ",' A ');

if(num[3]= = 1 num[2]= = 0 num[1]= = 1 num[0]= = 1)

sprintf(结果位置,“%c”,“B”);

if(num[3]= = 1 num[2]= = 1 num[1]= = 0 num[0]= = 0)

sprintf(结果位置," %c ",' C ');

if(num[3]= = 1 num[2]= = 1 num[1]= = 0 num[0]= = 1)

sprintf(结果位置," %c ",' D ');

if(num[3]= = 1 num[2]= = 1 num[1]= = 1 num[0]= = 0)

sprintf(结果位置," %c "," E ');

if(num[3]= = 1 num[2]= = 1 num[1]= = 1 num[0]= = 1)

sprintf(结果位置," %c "," F ');

pos

}

c字符串转换成十六进制,不要用sprintf。 void StringToHex(char *in,char *out)

{

int高,低;

while(*in)

{

高=(* in)4;

low =(* in)0xF;

*(out )=high9?高-10“a”:高“0”;

*(out )=low9?低-10“a”:低“0”;

在;

}

* out = ' \ 0

}

toHexString 修改了一个地方。

msg = " \ \ u " integer . tohexstring((int)chars[I]);“”是在它后面加上的。

msg = " \ \ u " integer . tohexstring((int)chars[I])" ";目的是方便划分字符串(用\\u划分字符串好像不行)。如果对这部分有异议,可以选择其他方法分弦。

增加了一个方法hexToString,用于将指定格式的句子恢复为原来的字符串...按照楼主题目的要求,就是把十六进制数恢复成“中华人民共和国(PRC)”。

公共类字符串{

静态字符串msg =

公共静态void main(String[] args) {

msg = to hex();

system . err . println(msg);

string result = hexto string(msg);

System.err.println(结果);

}

公共静态字符串tohex() {

String test = "中华人民共和国(PRC)";

char[]chars = test . tochararray();

for(int I = 0;i chars.lengthi ) {

//为了方便字符串分割,在每个十六进制数的末尾加一个空格。

msg = " \ \ u " integer . tohexstring((int)chars[I])" ";

}

返回msg

}

公共静态字符串hextoString(String msg) {

//下面三句用的是以空格为分隔符的正则表达式。

//获取每个“\\u”十六进制数字子串,并将其与strs数组一起保存。

花纹图案;

pattern = pattern . compile(" ");

string[]strs = pattern . split(msg);

char[]foreString = new char[strs . length];

字符串hexNum

for(int I = 0;i strs .长度;i ) {

hexNum = strs[i]。子串(2);//获取“\\u”后的十六进制数

int value = integer . parse int(hex num,16);//将其转换为十进制数

foreString[i] = (char)值;

}

返回新字符串(foreString);

}

}

stringtohex和C语言介绍到此结束。不知道你有没有从中找到你需要的信息?如果你想了解更多这方面的内容,记得关注这个网站。

相关文章

发表新评论