- 締切済み
FORTRANについて
任意の個数の文字列を入力し、小文字は大文字に、大文字は小文字に変換して 'aBcDe'→'AbCdE' のように出力させるにはどうしたらいいか教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ultraCS
- ベストアンサー率44% (3956/8947)
なにがわからないかは書いてください。 あと、処理系(OSとか言語の供給元とか)も必要です。 役に立たないプログラム(失礼)なので、おそらく実習だろうと思うのでヒントだけ まず、入ってきた文字列から人一文字切り出します、これには、部分文字列(TEXT(1:1)などと書きます)やDECODE文を使います。 次にこの文字が大文字か小文字かを判定し、置き換えますが、これは#2のかたのおっしゃるように配列にデータをとっておいて比較すればいいでしょう。こうすれば、文字コードによる違いは吸収できますから。 次に処理の終わった文字を文字列に戻します、部分文字列、ENCODE文、文字式などで行います。 #1のかたの方法なら、EQUIVALENCEというのを使いますが、これは処理系によって文字型とそれ以外のEQUIVALENCEが使えない(一部の86系など)こともあるので、ここでは書きません、興味があれば試してください。
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
文字コードに関する点のみの補足です。 小文字だけの文字列と大文字だけの文字列、それぞれに対応する整数配列を別途用意しておいて、1文字ごとにどちらかの配列の要素と一致するかどうか調べれば、いちおう機種による文字コードの違いは吸収できます。 実効効率は悪いですけど、まぁ演習だから効率悪くても良いんじゃないでしょうか。
Dimension (もじを保管する領域の配列名) intger (適当な配列) (命令忘却.上記2つの配列を同じメモリー場の位置に割り当てる宣言文) 文字の配列に適当に保存して. 整数の適当な配列から.文字を読み取り.別のコードに変えでもとの配列に入れる。 文字を保管している配列から読み出せば.文字になっています。 ただ.機種によって.文字コードが大幅に異なります。パソコンで使っているASCコード以外のコードの場合もありますので.どの数字が.どのコードになっているかは.湖質問者語指針で.確認してください。 アスキーコードべた打ちブ゜ログラム等を実行して.印刷することになります。ただ機種によっては.プリンターが物理障害と判断してスプールから外れるような重大な障害となる場合があります。システム管理者とご相談ください。