我想将每个字符的二进制值存储在一个字符串中并将其存储在一个数组中。但是当我开始搞乱像这样的功能时memset
,我无法控制调试。
#include <stdio.h>
#include <string.h>
int main()
{
char str[8];
char *ptr = "Hello";
int i;
for(; *ptr != 0; ++ptr)
{
printf("%c => ", *ptr);
/* perform bitwise AND for every bit of the character */
for(i = 7; i >= 0; --i)
if(*ptr & 1 << i)
str[7-i]='1';
else
str[7-i]='0';
//(*ptr & 1 << i) ? putchar('1') : putchar('0');
str[8]='\0';
printf("%s\n",str);
memset(str,'/0',8);
}
return 0;
}
输出:
H => 01001000
e => 01100101
l => 01101100
l => 01101100
o => 01101111
Abort trap
如果有人可以发出一些光,那就太好了。即使我得到了输出,陷阱也在发生。
礼貌:这是一个堆栈伙伴用户@Athabaska 的修改程序。