• ベストアンサー

文字列を配列として扱う方法について

文字列を配列に格納したいのですが、うまくいかずに困っています。 例えば、 a[1]=1番目のファイル.csv; a[2]=2番目のふく; a[3]=凄く長い名前.csv; としたいと考えています。 どのようにすればいいのでしょうか? 数字を配列に格納することはできます。

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

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

C++であれば... std::string a[3]; a[0] = "1番目のファイル.csv"; a[1] = "2番目のふく"; a[2] = "凄く長い名前.csv"; とすればOKです。 Cでは... char *a[3]; a[0] = "1番目のファイル.csv"; a[1] = "2番目のふく"; a[2] = "凄く長い名前.csv"; これでも済みますが、文字列をコピーする必要があるならずっと難しくなります。 char *a[3]; char *s; size_t n; s = "1番目のファイル.csv"; n = strlen(s); a[0] = malloc(n); if (a[0] == NULL)  /* エラー処理 */ strcpy(a[0], s); /* 以下、a[1]とa[2]も同様 /

saterain20
質問者

お礼

ありがとうございます。うまくいきました。

その他の回答 (3)

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

> いっこ足りない。 失礼しました。 ご指摘ありがとうございます。

saterain20
質問者

お礼

ありがとうございます。

回答No.3

> n = strlen(s); > a[0] = malloc(n); いっこ足りない。 n = strlen(s) + 1; a[0] = malloc(n);

saterain20
質問者

お礼

訂正ありがとうございます。うまくいかず悩んでました。

回答No.1

CやC++にはJavaと違って、文字列型はありません。したがって、文字列型の配列は作れません。 CやC++で文字配列を扱うには、文字の配列を作ります。同様に、文字の配列の配列、つまり、文字の2次元配列を作ればいいのです。参考: http://www.geocities.jp/ky_webid/c/025.html

saterain20
質問者

お礼

ありがとうございます。

関連するQ&A

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

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

  • 文字列の配列

    文字列の配列 1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 のようにIPアドレスが一行に一つづつ書き込まれたテキストがあります。 ここから、それぞれのIPアドレスを文字列として配列に書き込みたいのですが、どうしたらよいのでしょうか。 IPアドレスの数だけ配列を始めに宣言して、それぞれに書き込んでいくのでは手間がかかりすぎてしまいます。 単純に数値の羅列なら scanfを使い、配列に格納できるのですが、文字列になるとどうしたらいいのかわかりません。 よろしくお願いいたします。

  • 文字列を配列に入れる方法

    初歩的な質問で申し訳ありません。 文字列型のデータを1文字ずつ順番に配列に格納する方法を教えてください。 よろしくお願いしますっ。

  • 文字列を配列に…。

    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文字ずつコードをずらしていこうと思っているのですが、他に良い方法などあるのでしょうか?? 本当に初心者でどのようにしらたよいのか分かりません…。 どなたか分かりやすく教えていただけませんでしょうか?? お願いします。

  • 入力された文字列を一文字ずつ配列に格納する方法

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

  • 文字列を配列として格納したものをpublic

    文章がおかしくてすみませんが 文字列を配列として格納したものをpublic に指定したいのですがどの様にしたらいいのでしょうか? たとえば char *a[20];をpublic:に指定したいときは そのままpublicの所に置けばいいのでしょうか? 宜しくお願いいたします

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

    以下の値が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
  • 文字列と配列について

    文字列に数字を入力して、それを配列に入れて扱いたいのですが、誰かわかる人いたら教えてもらえませんか? また、参考となるソースなどを載せてもらえたらうれしいです。

  • 配列の中から文字列を探し、その番号を返す

    ある配列の中から、'Address' という文字列を探し、 もし見つかれば、その配列の何番目に格納されている か値を返してくれる関数はないでしょうか。 例えば、  @test[0] = 'No';  @test[1] = 'Name';  @test[2] = 'Point';  @test[3] = 'Address';  とあった場合、かえってくる値が 3 という具合  です。

    • ベストアンサー
    • Perl
  • ファイル内の文字を配列に格納

    ファイル内の文字列をも表示させた上で、文字列を配列に1つずつ格納したいのですが、とっても簡単な方法で教えてください。 ファイル名は「abc」で配列名は「moji」でお願いします。