字符串未显示在C的控制台中

CSnewbie

我正在尝试将数字转换为二进制字符串:

void num_to_binary(const int num, char *binary) {
  int number = num;
  for(int i = 0; number > 0; i++){
   binary[i] = number % 2;
   number = number/ 2;
  }
  int length = strlen(binary);
  binary[length] = '\0';
  printf("%s", binary);
 }

虽然我确定二进制字符串包含了我想要的东西(我printf("printed %d end",binary[i]);在for循环中使用来测试了代码),但是我无法通过编写代码来打印出来。printf("%s", binary);任何建议将不胜感激!谢谢。

您必须这样做binary[i] = !!(number % 2) + '0';,否则strlen()会在原本不应存在的位置找到空字符(值为零),它可能是您情况下的第一个字符。请参见下面的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void num_to_binary(const int num, char *binary) {
    int number = num;
    for(int i = 0; number > 0; i++){
        binary[i] = !!(number % 2) + '0';
        number = number/ 2;
    }
    int length = strlen(binary);
    binary[length] = '\0';
    printf("%s", binary);
}

int main(void)
{
    char buffer[100];

    num_to_binary(25, buffer);
    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

slice()在控制台中正确返回,但在<td>中未替换字符串

如何从控制台中的字符串中删除字符

如何在控制台中输入字符串并在tkinter中显示

如何将输出字符串存储到变量并在控制台中显示

字符串替换未在控制台中打印值

IE11在控制台中截断字符串

在Xcode调试控制台中打印多行字符串

无法在控制台中写长字符串句子

无法在控制台中打印字符串

在javascript中,如何在控制台中显示带有行尾字符的字符串保持“\n”

Firebase Analytics未显示在控制台中

Spring Loggin 未显示在控制台中

JSON对象显示控制台中的对象,但也包含php脚本返回的字符串中的“ undefined”

通过Selenium启动ChromeDriver时,控制台中显示的字母数字字符串代表什么?

将字符串转换为字节会在控制台中显示奇怪的十六进制代码

如何获取属性的字符串信息(与控制台中的字符串信息相同)?

Eclipse SWT标签文本未显示类似于控制台的字符串

如何将数组中的字符串连接为一个字符串并在控制台中显示?

控制台显示字符串结尾

Javascript - 完整字符串不显示在谷歌浏览器控制台中,只显示到第一个逗号

在Windows的Sublime Text控制台中打印utf8字符串

当太大时,StringBuilder.toString()在Eclipse控制台中打印为空字符串吗?

如何使用go在Windows控制台中正确输出字符串?

如何在引号之间输出字符串(在控制台中)?

如何防止Chrome在开发者控制台中截断字符串?

在xcode 6调试控制台中打印长字符串

如何在控制台中记录字符串变量原型属性?

将NodeJS / MongoDB查询输出到控制台中可运行的字符串

在Linux控制台中从输出中提取字符串