• 締切済み
  • すぐに回答を!

cshで、文字をアルファベット順に並べかえたい

cshellで配列に格納した文字を、アルファベット順に並べ替えたいのですが、いい方法はないでしょうか? array[1] = 'T'; array[2] = 'B'; array[3] = 'A'; のように文字の格納された配列があるのですが、 これを、アルファベット順に、 array[1] = 'A'; array[2] = 'B'; array[3] = 'T' このように並べ替えたいのです。 printfを使って、文字コードを比較し、並べ替えようとしたのですが、cshでは、エラーになってしまいます。 また、LINUXのsortコマンドを使う方法もためしてみたのですが、cshスクリプト内で、コマンドが実行されません。 別の方法があるのでしょうか?それとも上記の2つの方法で実装できるのでしょうか? どうか皆さまの知恵を貸して下さい。 よろしくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数422
  • ありがとう数0

みんなの回答

  • 回答No.1
  • notnot
  • ベストアンサー率47% (4591/9637)

値に空白文字が含まれないという前提で、 set array=`echo $array | tr " " "\012" | sort`

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • cshの詳しいサイトはありますか?

    指定のpathにあるバッチをcshから呼び出したいのですが、cshで文字列連結の方法がわかりません。 #!/bin/csh path = "./" path+batch1.csh $1 本当は、バッチのpathは別ファイルに書いて置き、そのファイルを呼び出して変数名pathに格納したいのですが、cshに詳しいサイトはありますでしょうか?

  • C言語で全角文字の扱いについて

    全角を配列に格納するには2バイトを使いますよね。そこで気になることがあるのですが、以下のプログラムで一文字目(私)を表示するには、どうしたらいいのですか?これは間違っています。 教えて下さい。 #include <stdio.h> main(){ char array[100]={"私の名前はXXXです"}; printf("%s",array[0]); }

  • 文字列と文字列をつなげるには

    下記のようにプログラムを作りました。 簡略しているのでわかりづらいと思いますが、 文字の配列と文字の配列を文字の配列に格納したいので、 下記のように$arrayに”.=”として文字列を加えて いますが、うまくいきません。 どのようにしたらいいのでしょうか? ご教授お願いいたします。 while($text[$i] != ""){ if($i==1){ $array[$j] = $feild[$j]; $array[$j] .= " "; $array[$j] .= substr($text[$i], $no, $pos); } }

    • ベストアンサー
    • PHP
  • URLの文字列からパラメータ部分を取得して配列にしたい

    http://www.***.com/xxx.php?a=123&b=456&c=789 上記の文字列(ページURLではなく変数に格納されています)の?以降を$_GETと同じ構造の配列にしたいです。 &、=で分解してarray_combineを使おうとしたらできませんでした。 調べて見たらバージョンが違うため未実装でした。 $_GETと同じ構造の配列にするにはどのように記述すれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • 文字を反転させる。

    以下の手順に従ってプログラムを作成せよ.適宜printf を利用して,入力支援(「文字列を入 力して下さい」などの画面表示)を行うこと. (1) キーボードから文字列を入力し,文字配列s[64] に格納する. (2) 文字配列s[64] に格納されている文字列を逆順にしてt[64] に格納する(配列全部を逆 順にするのではなく,NULL 文字までの要素を逆順にする). (3) t[64] を画面表示する. ポインタ使用不可、ヘッダファイル<stdio.h>だけ 入力された文字を反転させるということでしょうか?? #include <stdio.h> int main(void){ int i; char s[256]; char t[256]; printf("文字列を入力:"); scanf("%s" , s); for ( i = 0; i < '\n'; i++ ){ t[i] = s[i]; } printf("文字列の逆順は%s",t); getchar(); getchar(); return(0); } これだとただ入力された文字を出力するだけになってしまいますよね・・・・。どうすればいいのでしょうか?

  • 文字列の入れ替え

    2つのchar型配列x[],y[]に格納された文字列を入れ替えるプログラムを作成せよ。ただし入替え処理には、関数swap_array(char [],char [])を作成して用いること。という問題なのですが、下記の実行例では、2つの文字列xとyをキーボードから入力し、入れ替えた後に表示している。 <実行例> % ./irekae 文字列x (20字まで)? Mojiretsu 文字列y (20字まで)? Irekae 関数swap_array()を呼び出しました 入替後の x: "Irekae" 入替後の y: "Mojiretsu" % となっているのですが文字列を格納するところまでしかわかりません。 どなたか教えていただけないでしょうか? #include<stdio.h> int main(void) { char x[21]; char y[21]; printf("文字列 (20字まで)? "); scanf("%s", x); printf("文字列 (20字まで)? "); scanf("%s", y);

  • 配列への文字列の追加ってどうやって追加するの?

    配列に文字列をいれたいのですが char a[100]; sprintf(a,"AB"); と書くと a[0]にAが a[1]にBが a[2]に\0が格納されますよね。 「配列に一度格納された文字列に新たな文字列を追加」したいのです。 つまり この\0を上書きしてa[2]から CD を追加し、結果 a[0]にAが a[1]にBが a[2]にCが a[3]にDが a[4]に\0が 格納されているようにしたいのです。 半角英数だったらできるのですが全角だとどうやるのでしょうか。 やりたい事は以下のようなものです。 "あい"を1度目の処理で配列に文字列を格納し、次の処理で"うえ"を追加し、 配列aをprintfするとき「あいうえ」が出力されるようにしたいのです。 どなたか教えてください(>_<

  • 文字のコピー

    文字配列s[256],t[256]を用意して文字列を入力し、配列sに格納し、その後に配列s の内容を配列t にコピーするプログラムというものなんですが・・・・二つの文字型ポインタp,q で定義し,p = s,q = t として,変数p,q のみを利用してコピーします。 #include <stdio.h> int main ( void ){ char s[256]; char t[256]; char *p; char *q; printf("文字列を入力:"); scanf("%s", s ); p = s; q = t; while(*p != '\0'){ p++; q++; *q = *p; } p = '\0'; printf("文字列は%s",t); getchar(); getchar(); return(0); } ビジュアルスタジオつかってます。 しかしこのように記述するとなぜか最初の文字をよみこんでくれません。 たとえば yasuhiroとすると フasuhiroと出力してしまうのですが なにかいい解決方法はありませんか??

  • 文字列を配列に…。

    VBはまだ始めたばかりで本当に初歩的なことかもしれませんが分かる方がおられたら是非教えて下さい。 text1.textから取り込んだ文字列を”一文字ずつ”(Dim a(100) as stringで宣言した)配列に格納したいのですがどうしたらいいのでしょうか?? <例>text1.textに"abc"と入力しcommandbuttonを押すとa(0)に"a"がa(1)に"b"がa(2)に"c"が格納されるといったかんじです。 ちなみに今私がしたいのはtext1.textに、ある文字列を入れその文字列を文字コードに変換しそれを一文字分ずつ+1してまたそのコードを文字に直しtext2.textに出力するというものです(ようは簡単な暗号化ですね)。 私はAscとChrコマンドを利用して1文字ずつコードをずらしていこうと思っているのですが、他に良い方法などあるのでしょうか?? 本当に初心者でどのようにしらたよいのか分かりません…。 どなたか分かりやすく教えていただけませんでしょうか?? お願いします。

  • 「照合パターンに合いません」の回避法

    ディレクトリ/test内のファイルをリストアップして 配列に格納するためにcshスクリプトにて set LIST=( /test/* ) とすると、ディレクトリが空の場合 setコマンドが「照合パターンに合いません」 というエラーを吐きます。このエラーが起きると シェルスクリプト内で返値を拾ってエラー対処することも できず、スクリプトが落ちます。これを何とか回避する 方法はないでしょうか? 前もってlsやfindでディレクトリの中身が空でないことを 調べるというのは却下です。