2012-01-24 25 views
0

小文字の文字列をASCIIテーブルからCの文字 '表現'に変換する方法を説明できますか?たとえば、ユーザーの入力は097で、関数は 'a'を画面に表示しますが、ユーザーは '097100101'と入力することができます。関数は 'ade'などを出力する必要があります。操作:小数点から文字へのASCII変換 - C

char word[30]; 
scanf("%s", word); 

while(word[i]!=0) 
{ 
    if(word[i]<'d') 
     printf("0%d", (int)word[i]); 
    if(word[i]>='d') 
     printf("%d", (int)word[i]); 
    i++; 
} 

ただし、動作します。今私は同様の方法で動作する関数を持っていますが、もちろんdecimal> char変換を行います。ポイントは、私は 'atoi'などのような関数を使うことはできません。

+2

「atoi」を使用できないのはなぜですか? – arx

+0

atoiは使用できませんか?宿題? – Stu

答えて

0

入力文字列をトークン化します。私は、すべての文字を3文字で表現しなければならないことを強制していると仮定しています。そのように文字列を壊してください。そして、単に明示的な型キャストを使用して、目的の文字を取得します。

これは非常に簡単で、宿題の質問のように思えるので、私はあなたにこのコードを与えるべきではないと思います。

4

あなたは税引後営業利益の代わりにこの機能を使用することができます。

char a3toc(const char *ptr) 
{ 
    return (ptr[0]-'0')*100 + (ptr[1]-'0')*10 + (ptr[0]-'0'); 
} 

ので、a3toc("102")'f'ある、(char) 102と同じものを返します。

あなたはなぜ表示されない場合は、値の代替:ptr[0]'1'なので、最初の部分は102でその最初の1が何を表しているかである、('1'-'0')*100または1*100または100になります。

関連する問題