概述
第一题
#define _CRT_SECURE_NO_WARNINGS
//第十五章,编程练习题,第一题
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int printStrInt(char* str);
char* fget_s(char* st, int n);
int main(void)
{
int ch;
char str[100];
printf("请输入一个二进制字符串:");
fget_s(str, 100);
ch=printStrInt(str);
printf("输入的字符串%sn值为:%dn", str, ch);
return 0;
}
//求值函数
int printStrInt(char* str)
{
int i;
int len;
int wei = 1; //值
int sum=0;
//总值
if (!(len = strlen(str)))
{
fprintf(stderr, "长度为0");
return 0;
}
for (i = len-1; i >= 0; i--, wei <<= 1)
{
if (str[i] == '1')
sum += wei;
else if (str[i] == '0')
;
else
{
fprintf(stderr, "输入的是二进制字符串,不符合规则");
exit(EXIT_FAILURE);
}
}
//sum^=80;
return sum;
}
char* fget_s(char* st,int n)
{
char* find;
char* str_val;
str_val = fgets(st, n, stdin);
if (str_val)
{
find = strchr(st, 'n');
if (find)
*find = '