• ベストアンサー

小文字は大文字に、大文字は小文字に変換して表示するプログラム

C言語の問題で、ユーザが文字を入力し、CTRL+Zが押されるまで、半角英数字の入力を受け付ける。 受け付けた文字列(最大でも1000文字)を、小文字は大文字に、大文字は小文字に変換して表示するプログラムを作成する。数字に対しては何も変化させなくて良い。 けっこう考えたんですが全くわかりません。 どなたか知恵を貸してください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

#include <stdio.h> #include <ctype.h> int main (void) { int c; if((c = getchar()) == EOF) return 0; if(isupper(c)) c = tolower(c); else c = toupper(c); putchar(c); main(); return 0; }

その他の回答 (4)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

> CTRL+Zが押されるまで、 処理系に依存せずにCTRL+Zを検知する方法はありません。 処理系を特定するか、諦めるか、いずれかです。 なお、処理系を特定したとしても、ものによっては検知できない可能性があります。

noname#98978
noname#98978
回答No.3

>プログラムの作り方から、なにをしたらいいかほとんど分かりません。 まず、C言語を勉強してください。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

多分 Ctrl+Z で処理を終了する方法がわからないんだね。

noname#77845
noname#77845
回答No.1

どこが判らないのですか? ・プログラムの作り方? ・入出力? ・文字を変換するところ? ・文字を表示するところ?

bad-pc
質問者

補足

プログラムの作り方から、なにをしたらいいかほとんど分かりません。

関連するQ&A

  • abcが、入力された文字列内にあるかどうかを表示するプログラム

    文字列strの中にabcが含まれていれば、1を返し、含まれていなければ0を返すプログラムが分かりません。 C言語の問題で下記のものが分かりません。どなたか知恵を貸してください。 ユーザが文字を入力し、CTRL+Zが押されるまで、半角英数字の入力(最大でも1000文字)を受け付ける。文字列「abc」が、入力された文字列内にあるかどうかを表示するプログラムを作成する。ユーザが入力した文字列が3文字未満はabcがありませんと表示させる。 そのプログラム内で以下の関数を完成させる。 int str_srch_abc(char str []) 文字列strの中にabcが含まれていれば、1を返し、含まれていなければ0を返す関数とする。 (例えばabcは連続でabcの時だけ1を返し、asbscなどはoを返します。) ちなみに自分なりにやってみたのですが、ここまでしかできませんでした。 #include<stdio.h> int main() { int str_srch_abc(char str []); char str[1000]; int ch=0, j=0; printf("半角英数字を入力してください"); scanf("%s",str); while((ch=getchar())!=EOF){ str[j]=ch; j++; } str[j]='\0'; printf("%s",str); return(0); }

  • 文字列を数列に変換

    文字列(アルファベットのみ)を数列に変換するプログラムを作りたいのですが、うまくいきません。 [A = 01、B = 02、~ Z = 26、 Space = 00]とし、例えば入力が「ADAM」であれば、出力は「01040113」となるようなプログラムです。A~Z以外の文字(!, ?, @, 1, 2など)は無視します。 ちなみに言語はJavaです。 誰かご教授いただけないでしょうか?

    • ベストアンサー
    • Java
  • 文字の変換ができません(/_;)

    今、この質問を入力している時には、普通に英数字を半角や大文字に変換できるのに、 会社の社員専用のHPのフォーマットに、会社から発行されたIDを入力しようとすると、何故か英数字の変換ができなくなります。 IDは大小の半角英数字を組み合わせた物になっていて、入力できないと給料明細の確認もできないので非常に困ります。 どなたか原因や入力方法おのわかる方がいましたら、是非ご享受下さいい!!  宜しくお願いします。

  • Ruby1.9で全角文字を半角文字にうまく変換できません。

    Ruby1.9で全角文字を半角文字にうまく変換できません。 英数字までは以下のロジックでうまく出来たのですが、カナが正しく変換されません。 何か良い知恵をどうかご教示のほどお願いいたします。 ※★→←★の間の文字は半角カナです(ブラウザ上全角カナとなってしまうため、便宜上補足しました)。 moji = "イあ1Aa" moji.tr('a-zA-Z0-9ア-ン', 'a-zA-Z0-9★→ア-ン←★') 結果:★→ウ←★あ1Aa 何故か半角のイではなく半角のウとなってしまう。    ※アの場合のみ正しく半角のアに変換される。

    • ベストアンサー
    • Ruby
  • 文字変換がおかしいのですが・・・

    5年前のノートパソコンでWindows XP ですが、ひらがな入力をしようとすると、特定の文字だけ半角英数で入力されてしまいます。半角英数は全角など他の文字変換はできません。言語入力はMicrosoft.IME.Standard2002.ver8.1を使用しています。 ユーザーを切替して使用すると、そのような現象はおこらないのですがどうすれば直るでしょうか。

  • 文字列を数字型に変換したい

    いつもお世話になっております。 eclipseというツールでC言語のプログラムを触っているのですが、 文字列の数字を数値型に変換して掛け算をしたいのですが、 型変換の関数はありますでしょうか??

  • 半角カタカナを全角カタカナに変換したい

    Windows2000/Microsoft Excel2000です。 入力されている文字列のカタカナが半角になっているのを 全角に一括変換する数式はありますでしょうか? 英数字は半角のまま残したいのですが。 JISを使うと英数字も全角になってしまいます。 ヘルプいただけると大変助かります。

  • 文字の変換について

    OS 10.4.5を使用していますが最近文字の変換で上手くいかない事があります。例えば、半角英数字で「aiueo」と入力した後「カナ(かな)」キーを連打すると「あいうえお」と変換され直すと思います。逆に「あいうえお」と入力し「英数」キー連打で「aiueo」と変換され直すと思います。 この変換が最近全く出来なくなってしまいました。今は半角で「aiueo」と打って「カナ」キーを連打しても全角と半角の「aiueo」しか選択出来ない状態です。逆に「あいうえお」と打って「英数」キーを連打しても何の反応もないです。今までのようにちゃんと変換出来るようにするにはどうしたら良いでしょうか?どなたか宜しくお願い致します。

    • 締切済み
    • Mac
  • ALT+半角/全角を押さなければ、文字を変換できません。

    PCを立ち上げ、文字を最初に入力しようとすると、英数字で入力されます。 そこで、日本語に変換しようとするのですが、ALT+半角/全角を押さなければ、文字を変換できません。 その後は、半角/全角を押すだけで、変換できるようになります。 一番初めから、半角/全角を押すだけで、変換できるようにするためにはどうすればいいですか? PC dell 1525 WindowsVista Home Premium http://www.sd-dream.com/pasocompass/PC/Dell/Inspiron1525.html

  • エクセル 入力規則設定方法

    全角のみで25文字以内の設定を行いたいと思っておりますが、 A1のセルに下記の入力規則設定を行った場合 [ユーザー設定]⇒.[数式] =AND(A1=JIS(A1),LEN(A1)<=25) 先頭からいくつか数字(全角でも)のみが並ぶとエラーになってしまいます。 また、 [文字列長さ]⇒.[最大値] 25以下 この場合も、数字のみですといくらでも入力が可能であり、しかも16番目の数字が0(ゼロ)に 変化してしまいました。 どこか、何かの設定方法が悪いと思うのですが、 本来設定したい内容としては、 ●そのA1セルに、半角英数字を入力しても全角に変換し、文字数としてカウントする。 ●上記のように、数字のみが10個並んだとしても許可して全角文字に変化させる。 これを設定したいのです。 どうか教授いただけないでしょうか。 宜しくお願いします。