- 締切済み
c言語プログラミングHELP!
c言語でプログラムを組んでるんですが、どうしてもわからないものがありまして、 まず一つ目がキーボードから英小文字を一つ入力し、その文字を大文字に変換して出力するプログラミングです。結果がまずひとつの英小文字を入力して、入力した文字と、大文字に変換した文字を出力するプログラミングです。 ちなみにヒントは'a'=97,'A'=65です 二つ目が二桁の16進数('41'から'49','50'から'59')を入力すると対応する文字を表示するプログラミングです。また、%xは使用しないこと。なお、入力に間違いはないものとする。(ヒントは入力は一つの数値か、二つの文字か?だそうです。) 結果は二桁の16進数('41'から'49','50'から'59')を入力して、文字コードの二桁の数字と文字を出力するプログラミングです。 お願いします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- 和泉 博(@hiroshi09s)
- ベストアンサー率54% (59/109)
難しく考えず、単純に。 http://e-words.jp/p/r-ascii.html /* 回答一つ目 */ #include <stdio.h> int main(void) { char a; printf("? "); scanf("%c", &a); printf("%c => %c\n", a, a - 0x20); //味噌->(0x41-0x61) return 0; } /* 回答二つ目 */ #include <stdio.h> int main(void) { int a; printf("Input 40-49 & 50-59: 0x"); scanf("%d", &a); printf("a= %c\n", a + 24); //味噌->(65-41) return 0; }
- KAZUMI2003
- ベストアンサー率37% (77/208)
一番、謎なのは、'41'と'49','50','59'だと思うんですが・・・
- D-Matsu
- ベストアンサー率45% (1080/2394)
実現はしてるけど問題の「意図」には確実に沿わないコード。 #こんなひねくれた回答が欲しくなければもちっと自力で努力しよう、ということ。 ……まぁなんだ、#3でも言われてるけど変なヒントを出すよりも「ASCIIコード表に沿って」とか言っとけば良かっただけじゃないかとは思うんですがね。 1) char *p; const char lower[] = "abcdefghijklmnopqrstuvwxyz"; const char upper[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char c = getchar(); if((p = strchr(lower, c)) != NULL) { printf("upper case is %c\n", upper[p - lower]); }else{ printf("input character is not lower case alphabet.\n"); } 2) char input[3]; int result; scanf("%s", input); result = strtol(input, NULL, 16); printf("%d, %c", result, result);
- Tacosan
- ベストアンサー率23% (3656/15482)
ど~でもいいけど 「'a'=97,'A'=65」 がどうして「ヒント」なんだろう. こんなのを「ヒント」に出すような奴は捨ててもいいと思う.
- kakuritsu
- ベストアンサー率23% (62/261)
課題自体はわかりましたけど あなたの「わからないところ」が記述されていません。 わからないところを補足してください。
- trajaa
- ベストアンサー率22% (2662/11921)
いやこれでは、宿題が分からないから代わりにやってくれというレベルの質問です。 1~10まで全て回答に頼るというのは宿題という性質から宜しくないと考えます。 基本的な部分は自分で挑戦した上で 例えば、16進の値を文字に置き換える方法が分からないとか 小文字大文字変換の部分が思いつかないとか ポイントに対するヒントが欲しいという程度までは自力で頑張ってください。