c 字符串转2进制字符串
时间: 2023-09-24 11:13:42 浏览: 45
以下是将一个 C 字符串转换为二进制字符串的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void str2bin(char* str) {
int len = strlen(str);
char* bin_str = (char*)malloc(sizeof(char) * (len * 8 + 1)); // 每个字符占 8 位二进制,加上字符串结束符 '\0'
bin_str[0] = '\0'; // 初始化为空字符串
for(int i = 0; i < len; i++) {
char ch = str[i];
for(int j = 7; j >= 0; j--) {
if((ch >> j) & 1) {
strcat(bin_str, "1");
} else {
strcat(bin_str, "0");
}
}
}
printf("%s\n", bin_str);
free(bin_str);
}
int main() {
char str[] = "hello world";
str2bin(str);
return 0;
}
```
输出结果为:
```
0110100001100101011011000110110001101111001000000111011101101111011100100110110001100100
```
在上述代码中,我们使用了 `malloc` 函数动态分配了一个足够大的字符数组 `bin_str`,用于存储二进制字符串。然后,我们遍历原始字符串的每个字符,并将其转换为 8 位二进制字符串,添加到 `bin_str` 中。最后,我们使用 `printf` 函数将二进制字符串输出到控制台,并使用 `free` 函数释放 `bin_str` 占用的内存。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)