实现一个字符串转16进制的函数模块
时间: 2024-05-09 22:20:03 浏览: 62
以下是Python语言实现的一个字符串转16进制的函数模块:
```python
def str_to_hex(string):
"""
将字符串转换为16进制表示
:param string: 字符串
:return: 16进制表示的字符串
"""
hex_string = ""
for s in string:
hex_string += hex(ord(s))[2:]
return hex_string
```
使用示例:
```python
print(str_to_hex("Hello, World!"))
# 输出: 48656c6c6f2c20576f726c6421
```
解释:
- `ord(s)` 函数返回字符的ASCII码值
- `hex()` 函数将10进制数字转换为16进制字符串,其中 `[2:]` 表示去掉字符串前面的 `0x` 前缀
相关问题
用C语言实现一个字符串转16进制的函数模块
以下是使用C语言实现字符串转16进制的函数模块的示例代码:
```c
#include <stdio.h>
#include <string.h>
void stringToHex(char* input, char* output) {
int length = strlen(input);
for (int i = 0; i < length; i++) {
sprintf(output + i * 2, "%02X", input[i]);
}
}
int main() {
char input[100];
char output[200];
printf("请输入需要转化的字符串:");
scanf("%s", input);
stringToHex(input, output);
printf("转化后的16进制字符串为:%s\n", output);
return 0;
}
```
在这个函数模块中,我们首先使用strlen函数获取输入字符串的长度,然后使用sprintf函数将每个字符转换为2位16进制数,并将其存储在输出字符串中。最后,我们在主函数中调用此函数,并将转换后的16进制字符串打印到控制台上。
例如,如果我们将输入字符串设置为“Hello World”,则输出将为“48656C6C6F20576F726C64”。
用C语言实现一个字符串转16进制数组的函数模块
以下是一个用C语言实现的字符串转16进制数组的函数模块示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void str2hex(char *str, unsigned char *hex)
{
int len = strlen(str);
int i = 0, j = 0;
while (i < len)
{
char c = str[i];
if (c >= '0' && c <= '9')
hex[j] = c - '0';
else if (c >= 'a' && c <= 'f')
hex[j] = c - 'a' + 10;
else if (c >= 'A' && c <= 'F')
hex[j] = c - 'A' + 10;
else
hex[j] = 0;
i++;
c = str[i];
if (c >= '0' && c <= '9')
hex[j] = (hex[j] << 4) | (c - '0');
else if (c >= 'a' && c <= 'f')
hex[j] = (hex[j] << 4) | (c - 'a' + 10);
else if (c >= 'A' && c <= 'F')
hex[j] = (hex[j] << 4) | (c - 'A' + 10);
else
hex[j] = (hex[j] << 4);
i++;
j++;
}
}
int main()
{
char str[] = "48656C6C6F20576F726C64";
unsigned char hex[12];
str2hex(str, hex);
printf("Hex array: ");
for (int i = 0; i < 6; i++)
printf("%02X ", hex[i]);
printf("\n");
return 0;
}
```
上述示例中,`str2hex`函数接收一个字符串指针和一个无符号字符数组指针作为参数,将字符串转换为16进制数组。函数通过遍历字符串中的字符并将其转换为对应的16进制值来实现转换。最终的16进制数组存储在传递给函数的无符号字符数组中。
在示例程序的`main`函数中,我们将一个十六进制字符串传递给`str2hex`函数,并打印转换后的16进制数组。输出结果如下:
```
Hex array: 48 65 6C 6C 6F 20
```
阅读全文