c语言利用栈实现十进制和二进制相互转换,十进制以$结束,二进制以#结束,利用结束符自动识别要做的转换类型

如何通过结束符自动识别转换类型,并将对应结果输出?如何设置容错?当输入数与结束字符不相符时结果如何输出?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7596878
  • 你也可以参考下这篇文章:用C语言和数据结构解决十进制转换为二进制的问题
  • 除此之外, 这篇博客: C语言编程题(基础)中的 二十六、编写程序:输入一个十六进制数,输出相应的十进制数。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    #include "string.h"
    #include "stdio.h"
    int main(void) {
    	char c;
    	int value = 0;
    	while ((c = getchar()) != '\n')
    	{
    		if (c >= 'A' && c <= 'F')
    			value = (c - 'A' + 10) + 16 * value;
    		else if (c >= 'a' && c <= 'f')
    			value = (c - 'a' + 10) + 16 * value;
    		else if (c >= '0' && c <= '9')
    			value = (c - '0') + 16 * value;
    	}
    	printf("%d", value);
    	return 0;
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

#include <stdio.h>
int main()
{
    int s = 0;
    int i=0;
    char buf[60]={0};
    printf("请输入二进制字符串:");
    scanf("%s",buf); //读取二进制字符串
    while(buf[i] != '\0')
    {
        s = s *2 + buf[i]-'0';
        i++;
        if(i==8) break;
    }
    printf("%d",s);
    return 0;
}