将用户输入字符串转化2进制并输出(c语言)
答案:2 悬赏:60 手机版
解决时间 2021-07-19 17:34
- 提问者网友:斑駁影
- 2021-07-19 11:15
如何将用户输入字符串转化2进制并输出(c语言)
最佳答案
- 五星知识达人网友:几近狂妄
- 2021-07-19 11:46
不知道你说的是针对数字的转换成2进制还是说所有的字符串转成2进制,以下代码针对所有的字符串:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char * argv[])
{
char input[1024];
scanf("%s", input);
char c;
int len = strlen(input);
char * output = new char[len * 8 + 1];
memset(output, (int)'0', len * 8 + 1);
char tempBuff[9];
for(int i = 0; i < 1024; i++)
{
c = input[i];
if(c == 0) break;
itoa((int)c, tempBuff, 2);
strcpy(output + (i * 8) + (8 - strlen(tempBuff)), tempBuff);
output[(i + 1) * 8] = '0';
}
output[len * 8] = 0;
printf(output);
delete [] output;
return 0;
}
如果是做数字的转换,参考一下,为经测试:
#include <stdio.h>
#inlcude <stdlib.h>
int main()
{
int n;
scanf("%d", &n);
char temp[1024];
atoi(n, temp, 2);
printf(temp);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char * argv[])
{
char input[1024];
scanf("%s", input);
char c;
int len = strlen(input);
char * output = new char[len * 8 + 1];
memset(output, (int)'0', len * 8 + 1);
char tempBuff[9];
for(int i = 0; i < 1024; i++)
{
c = input[i];
if(c == 0) break;
itoa((int)c, tempBuff, 2);
strcpy(output + (i * 8) + (8 - strlen(tempBuff)), tempBuff);
output[(i + 1) * 8] = '0';
}
output[len * 8] = 0;
printf(output);
delete [] output;
return 0;
}
如果是做数字的转换,参考一下,为经测试:
#include <stdio.h>
#inlcude <stdlib.h>
int main()
{
int n;
scanf("%d", &n);
char temp[1024];
atoi(n, temp, 2);
printf(temp);
return 0;
}
全部回答
- 1楼网友:鱼忧
- 2021-07-19 12:58
int cc;
scanf("%d",&cc);
printf("%b",cc);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯