写一段c语言代码用sacnf接受字符串,转换为asc||码,再转换为二进制,将二进制结果不打印储存起来
时间: 2024-10-15 15:26:24 浏览: 4
在C语言中,你可以使用`scanf`函数从用户那里获取字符串,然后将其转换为ASCII码和二进制形式存储。但是直接将二进制结果作为文本存储可能会占用大量空间,一般我们会选择数组或其他数据结构来存储二进制数据。下面是一个例子,展示了如何实现这个过程:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CHAR_LENGTH 100
void stringToBinary(char input[], int binary[]) {
int i = 0;
for (char c : input) {
// 将ASCII码转换为二进制并保存
binary[i] = (c << 4); // 左移4位因为ASCII码最高位是0
binary[i+1] = c; // 右移4位再加上最低位
i += 2;
}
// 结束时可能不满两位,填充0
while (i < MAX_CHAR_LENGTH*2) {
binary[i++] = 0;
}
}
int main() {
char input[MAX_CHAR_LENGTH];
int binaryArray[MAX_CHAR_LENGTH * 2];
printf("请输入一个字符串: ");
if (fgets(input, sizeof(input), stdin) != NULL) {
size_t length = strlen(input) - 1; // 去掉换行符
input[length] = '\0'; // 确保字符串结束
stringToBinary(input, binaryArray);
// 显示原始信息:我们实际上没有打印二进制结果,只是储存起来了
printf("字符串 '%s' 转换为ASCII和二进制后存储在binaryArray。\n", input);
} else {
printf("错误:无法读取输入。\n");
}
// 这里仅用于演示目的,实际项目中会存储在其他地方或文件
// 注意:这并不是最佳实践,二进制数据通常不会直接打印
// for (int i = 0; i < MAX_CHAR_LENGTH * 2; i++) {
// printf("%d ", binaryArray[i]);
// }
return 0;
}
```
在这个代码中,`stringToBinary`函数负责将输入字符串转换为二进制数组,而`main`函数则请求用户输入,读取字符串,然后调用转换函数。