gpt4 book ai didi

c - 在 C 中打印字符串的二进制 ASCII 码

转载 作者:太空宇宙 更新时间:2023-11-04 06:21:57 25 4
gpt4 key购买 nike

我需要编写一个程序,读取一个字符串并打印出该字符串的二进制 ASCII 码。我不知道字符串的长度,我需要在程序的某个地方实现数据结构。我写的源码是:

#include <stdio.h>  
int dec_to_binary(int c, int d);

//initialize data structure for binary value
struct binary{
int value;
};
struct word{
int w_value;
};

int main(){

char wordd[256];
printf("Input a string of characters (no spaces): \n");
//scanf("%s", w);
fgets(wordd, sizeof(wordd), stdin);
printf("You typed: %s", wordd);
int size_word = sizeof(wordd);

struct word w[size_word]; //stores character string
struct binary b[size_word]; //initizalize corresponding binary array for char string inputted by user

int i = 0;
int char_int = 0;
for (i = 0; i < size_word; i++)
{
char_int = w[i].w_value;
b[i].value = dec_to_binary(char_int, size_word); //stores binary value in binary struct array
}

printf("The binary ASCII code for this string is: %d", b);

return 0;
}

int dec_to_binary(int c, int d)
{
int i = 0;
for(i = d; i >= 0; i--){
if((c & (1 << i)) != 0){
return 1;
}else{
return 0;
}
}
}

当我编译它时,我没有得到任何错误,但我的输出是不正确的:

Input a string of characters (no spaces):
eli
You typed: eli
The binary ASCII code for this string is: 2421936

无论我尝试什么输入,我都会得到返回值 2421936。关于我哪里出错的任何想法?

最佳答案

您将 b 声明为结构数组,因此如果您打印 b 的值,它将为您提供数组的基地址。
使用循环打印数组值。
您正在使用 w 获取二进制值,但输入在 wordd[] 中,您是否复制了该值?

关于c - 在 C 中打印字符串的二进制 ASCII 码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33162935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com