1

2進数を10進数に変換するプログラムを作成しようとしていますが、配列に入力された要素の量を取得する方法がわからないため、正しい答えが得られません.これは私のコードです.

#include <stdio.h>

int a=0;

 int main ()
 {
  char  bin[20];
  int i=0, len, r=0, w;

  printf("Enter a Binary Number:  ");
  scanf("%s",bin);
  printf("\n");

 len = sizeof(bin); /*i know this is my problem how do i get len to be the size 
of the input of the user for example if the user puts 1010 len should be 4*/

  for(i = 0; i < len; i++)
     {
          r = r * 2 + (bin[i] == '1' ? 1 : 0);
       }

   printf("Decimal is: %d\n\n",r);

return 0;
 }  
4

1 に答える 1

2

ヘッダー文字列で strlen 関数を使用します。

すなわち

#include<string>

sizeof(bin) の代わりに、strlen 関数を使用します。

len = strlen(bin);
于 2013-03-06T06:34:34.163 に答える