• 締切済み

格納

例えばA123B124C125D126 などの文字列から各英文字に付属した値だけ取り出して格納しておくという 方法について知りたいんですが、 配列を使って格納しておく方法などはわかるんですが 他に方法はありませんか?

みんなの回答

  • hogejo
  • ベストアンサー率42% (11/26)
回答No.4

どのようなことを目指しているのか、コードで提示してくれると 分かりやすいと思います。(C言語として間違っていても、やりたいことが伝わればいいと思います。) 文字列から値を取り出す方法ではなく、格納する方法について聞いているのですか? 格納先ならば、map や list や vector など、いろいろあると思います。 例えばmapとかに 'A' などのcharをキーとして、 123という数値を値として格納するなどでしょうか?

  • eroermine
  • ベストアンサー率18% (83/444)
回答No.3

3バイトなら int 32bitに収まりますね。 union char3 { int i; char c[4]; } A,B,C,D;

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

>配列を使って格納しておく方法などはわかるんですが >他に方法はありませんか? 配列では不味い理由を補足にどうぞ。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

もっと詳しく「求める動作」を書いてもらえないでしょうか. ・「各英字に付属した値」とは? ・「格納する」といっているが, 「どこに」「どのような形」で?

minaraiH
質問者

補足

>各英字に付属した値」とは 例でいうと Aは123 Bは124 Cは126 ですね。少し言い方がまずかったようです。 >格納する」といっているが, 「どこに」「どのような形」で? 文字を格納しておいてその文字を使って色んな作業がしたいです。 ですのでココでも非常に言い方がまずかった・・ 例えば配列bufを使う場合 123 124 125をそれぞれの配列に入れておいて 代入に使ったり図形書いたり、ファイルに書き出したりしますよね。 配列を使わないでこのようなことができますか?という質問なんです。

関連するQ&A

  • [マクロ]配列を区切り文字で変数に格納する方法

    タイトルの通りなのですが、 例えば、 A1~B10にランダムな数字が入っています。 (1)A1~B10を配列Cに格納します。 (2)配列C(1,10)を変数test1に格納します。  ※その時に各配列を/で区切る (3)配列C(2,20)を変数test2に格納します。  ※その時に各配列を/で区切る (4)test1をセルC1に記入 (5)test2をセルC1に記入 のような感じです。 配列に格納する方法はさすがに分かるのですが、区切り文字を入れて変数に格納する方法が分かりません。。。。 ご教授お願いいたします。

  • 一致する要素が格納されている添え字番号を返す

    例えばある配列内に @moji = (ak, df, gc); などという値でも文字でもが格納されていたとして、 $x = "ak"; といったある変数に格納されている値・文字(この場合はak)と一致する要素が配列@mojiに格納されていた場合に、その格納されている要素の添え字番号(配列の添え字番号)を返すような関数はないでしょうか? イメージとして $res = mch($x); とすると、0が返されて$resに格納されるというものです。 ちなみにRという言語では > a <- c("ljj", "B0", "op199") # 変数aに3つの文字列要素を代入する > res <- which(a == "op199") # which()は引数に指定された論理に一致する要素番号を返す > res # aについて,a == "op199"がTRUEとなるのは要素番号3であるから,3を返す [1] 3 というものがあるのですが、これと同じような関数が欲しいのです(泣)

    • ベストアンサー
    • Perl
  • 入力された文字列を一文字ずつ配列に格納する方法

    例えばABCって文字列が入力されたら配列に data[0]="ABC" と格納するのではなく data[0]="A" data[1]="B" data[2]="C" と格納するにはどう書けばいいのでしょうか?

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

    配列に文字列をいれたいのですが 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するとき「あいうえ」が出力されるようにしたいのです。 どなたか教えてください(>_<

  • 文字の探索について

    文字列中の英大文字,英小文字の出現回数をカウントし、その回数を出力するプログラムを作りたいのですが、どうもうまく動いてくれません。 ABC123Abcのときの出力結果は 'A' = 2 'B' = 1 'C' = 1 'D' = 0 'E' = 0 中略 'X' = 0 'Y' = 0 'Z' = 0 'a' = 0 'b' = 1 'c' = 1 中略 'y' = 0 'z' = 0 のように出したいです。 私が考えた方法では まず文字列を配列str[100]に読み込み for文で、'\0'が来るまで配列の中身の文字を一つずつ判定('A'が見つかると、変数Aの値をを1つ増やす)していき、 全ての文字の判定後、 printf("'A' = %d\n", A); printf("'B' = %d\n", B); 中略 printf("'z' = %d\n", z); という風に表示しようとしたのですが、うまく表示されず、プログラム自体もとても長くなってしまい、これが正解とはいえない状態です。 こんな方法よりもっといい方法があれば教えていただきたいです。 あと、判定方法もお願いします・・・。

  • Perlでの文字列操作について

    Perlを使用しての文字列操作について教えてください。 たとえば以下のような数字とアルファベットが順に並ぶ文字列があるとします。 11A4C555D67B114B9423C アルファベットは1文字ですが、数字は何個でも連続で並びます。 この文字列を「数字アルファベット」の部分で分割し、配列に格納したいのですが、うまくいきません。 @array=('11A','4C','555D','67B','114B','9423C') どなたか教えてください。よろしくお願いいたします。

  • 文字列になっている配列を‥

    以下の値がDBに文字列の項目に登録されています。 DB から値を取得したのはいいのですが文字列なので foreach でグルグルしようとすると怒られてしまいます。 配列の型に変換できればいいのですが(array)だとうまく行かないしどうすればいいかどなたかご教授願えないでしょうか。 よろしくお願いします。 ■値(文字列でDBに格納されてます‥) array( 1=>'a', 2=>'b', 3=>'c', 10=>array( 'A'=>1, 'B'=>'hoge1', ), 11=>array( 'A'=>2, 'B'=>'hoge2', ), 12=>array( 'A'=>3, 'B'=>'hoge3', ), )

    • 締切済み
    • PHP
  • ファイルの読み込み、配列に格納

    お世話になります。Java初心者です Javaプログラムを実行する同じディレクトリにあるテキストファイルとデータファイルをコマンドラインで同時に読み込み それぞれ違う配列に格納したいのですが、1つのファイルの読み込みは出来ても2つ同時の読み込みと配列格納でつまづいています。 読み込むテキストファイルには以下のような1行の文が、 Dr. Fujita is great! 読み込むデータファイルには以下のような文字が書かれています。 AC 4C 7C 10C KC 3D 6D 9D QD JB 3C 6C 9C QC 2D 5D 8D JD JA 2C 5C 8C JC AD 4D 7D 10D KD 配列に格納する際、テキストファイルの場合は全て大文字にし、アルファベット以外の記号(スペース含)は全て消して配列に格納します。 上の例でいえばこのような状態で格納です↓ DRFUJITAISGREAT データファイルの場合は、2組1文字をそのまま配列に格納です。ただしスペースは飛ばします。 上の例でいえば、ACを配列0に、4Cを配列1に、7Cを配列2に、、、と格納していきます。 import java.io.*; public class sample{ public static void main(String[] args){ try{ FileReader f = new FileReader(args[0]); BufferedReader b = new BufferedReader(f); Strings; while((s=b.readLine())!=null){ System.out.println(s); ←読み込んでるか確認 } }catch(Exception e){ System.out.println(no file); } } } ファイルの指定は実行時に、java sample datafile.dat textfile.txt と指定します。 読み込むプログラムは以上のように書いたのですが、2つファイルを読み込むにはどのように記述したらよいのでしょうか。 FileReaderを2つ作成?しても最初に指定したデータファイルの内容がまた読み込まれるだけで・・・ 読み込んだら変数sに入りますが、たとえばs.substring()なんかでわけて配列に入れようとしても、s.substring()←ここでエラーが出てしまいます。 あと、Dr. Fujita is great!のアルファベットを大文字にし、記号(スペース含)を飛ばして格納するにはどうしたらよいのでしょうか。 宜しくお願いします

    • ベストアンサー
    • Java
  • 2次元の配列にデータを格納したい

    hoge.txtの様なファイルがあって、この値を2次元の配列に格納したいのですが、簡単に実現することは可能でしょうか? open (FILE, "hoge.txt"); foreach (<FILE>) { # この中で、2次元の配列に格納したい } hoge.txt A  1 B  2 C  3

    • ベストアンサー
    • Perl
  • 配列のサイズを動的に指定したい。

    現在FeliCaを使ったプログラムを作っているのですが、 FeliCaから読み込んだデータを各配列にサイズぴったりで格納したいんですが、読み込むデータによって配列のサイズが違うため、あらかじめ配列のサイズを指定しておくことができません。  例1「012 34567 89]    例2「01 2345678 9」   a[3]=012           a[2]=01   b[5]=34567          b[7]=2345678   c[2]=89            c[1]=9 というように空白で区切った文字列を各配列に格納したいのです。 なにか良い方法はないでしょうか? ソフトはVisualStudio6.0を使用しています。

専門家に質問してみよう