2017-01-20 6 views
-3

私は文字列の入力を取る私はこれらの入力がバイナリの値であるかどうかをチェックしたいcプログラムがありますこれについてどうやって行くのですか?Cの文字列のプログラミングのバイナリ

例えばユーザ入力「1001」はどのように私は私がそのバイナリまたはcでそれを行う下さいポインタを使用しないようにしようではないとしてもまた数学ライブラリ

を使用していないかどうかを確認することができた場合@ MYWORKこれまで 、私は文字列を整数に変換され、ここでATOI機能 を使用し、私は私は2つの入力に取るようにscanf関数を使用し、Iいプログラムの再説明 @

で整数をチェックしています機能です文字列としてそれらを格納するユーザーは2つの2進数を入力するはずです。私はこれらの数字のそれぞれがバイナリであることを確認して確認したい。以下はいくつかの例です

INput: 101001 100101 
Both Stored As String. 
Output:function checks and see thats they are both binary 

    That is a correct way I want it to run. Here is another example 
    Input:1001hshds101 100101 
    Both stored as String 
    Output: Checks both strings and knows that the first string is wrong 







//SOme of my work (ignore this for the most part) 
int binCheck(long long int input){ 
     int dv; 
     while(input! = 0){ 
     dv = input%10; 
     if(dv>1){ 
      return 0; 
      } 
     input = input/10; 
    } 
    return 1; 
    } 
+4

この音は別の宿題のようです。これまでに何を試しましたか?私たちにいくつかのコードを表示し、私たちが助けます –

+0

@SeekAddoはちょうどいくつかのコードを追加しました。 – donaldTheProgrammer

+0

私はここでの "バイナリ"の定義は、10進表現が0と1だけを含む数であると仮定します。あなたの 'binCheck'関数が正しいと思われます。だから実際の問題はどこですか? –

答えて

1

atoi()を使用しないでください。文字列の各文字をループし、各文字が '0'か '1'のいずれかであることを確認してください。以下の例。

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

int isBinary(char *value); 


int isBinary(char *value) 
{ 
    int i; 
    int bIsBinary = 0; 
    int len; 

    bIsBinary = 1; 

    len = strlen(value); 
    for(i = 0; i != len; i++) 
    { 
     if (value[i] != '0' && value[i] != '1') 
     { 
      bIsBinary = 0; 
      break; 
     } 
    } 
    return(bIsBinary); 
} 


int main (void) 
{ 
    char *value = "101a001"; 
    int isBin; 

    isBin = isBinary(value); 
    printf("[%s] is Binary::%s\n", value, (isBin) ? "true":"false"); 

    return(0); 
} 
+0

ちょうど長さを取得できますか? (i = 0; i ryyker

+0

@ryykerはい、それは妥当なことです。 – Chimera

+0

main以外の機能としても使えますか? – donaldTheProgrammer

関連する問題