2013-03-06 97 views
0

所以即時通訊編寫一個程序將二進制轉換爲十進制,我有一切正確的執行我沒有得到正確的答案,因爲我不知道如何獲得輸入的元素的數量進入陣列這是我的代碼找到一個字符數組中的元素的數量

#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; 
} 
+0

數組和指針不知道他們是怎麼長的。這就是爲什麼C風格的字符串在末尾有一個0來幫助區分它與任意字節數組的原因......您需要將其長度存儲在別處,或使用抽象數據結構。 – Dmitry 2013-03-06 06:29:53

回答

1

在標題字符串中使用strlen函數。

#include<string> 

相反的sizeof(BIN)的,使用strlen功能

len = strlen(bin); 
+0

非常感謝你我已經嘗試過strlen,但顯然包含了錯誤的庫(conio),我認爲它非常感謝你 – Tatan1 2013-03-06 06:41:17

相關問題