2016-06-19 10 views
-7

トークン化は必要ありません。リテラル次の文字列を考えてみましょう:文字列リテラルで数字/文字が何回表示されますか?

char* string = "12, 789, 1234"; 

この特定の文字列の出力は次のようになります。

0、2、2、1、1、0、0、1、1、1

この0が0、2が1、2が2、2が1、3が1であることを意味します。

私はASCIIテーブルを使用することができると私は理解していますが、

+0

は、スイッチ/ケースおよび各数をカウントする変数でループを試してみてください使用することですが、文字列で表示されます。 – Joel

+2

最も簡単な方法は、短い文字列リテラルで、自分自身を数え、コード内でハードコードします。 –

答えて

0

最も簡単な方法は、通常のfor

char* str = "12, 789, 1234"; 
int k[10]= {0,0,0,0,0,0,0,0,0,0}; 
int n= strlen(str); 
for(int i=0; i < n ;i++) 
    if(isdigit(str[i])) 
    k[str[i]-'0']++; 
+0

カウンターを増やす以外に、コードの最後の行が何をしたのか説明できますか? – Buttyfade

+0

str [i]は文字なので、アスキー値を引いてascii値 '0'を購入し、配列内のインデックスを取得します 0 - 0 = 0 1 - 0 = 0 .... – kemis

関連する問題