【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.22399

文字列配列にデータを格納
投稿者---とおる(2005/08/03 19:40:51)


こんにちは。

データを取得してきて、文字列配列にデータを格納
するやり方を教えて頂けないでしょうか。

データを取得してきたまでは出来たのですが、文字列配列に
格納するやり方が解りません。

初心者なので良く解りませんが、こんな感じで良い
のでしょうか。

(ループ開始)
if (i == 0) {
temp[0] = "取得データ";
} else {
strcpy( temp,"取得データ");
}
(ループ終了)

以上、宜しくお願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:文字列配列にデータを格納 22400 Blue 2005/08/03 19:50:50


No.22400

Re:文字列配列にデータを格納
投稿者---Blue(2005/08/03 19:50:50)


> データを取得してきたまでは出来たのですが、文字列配列に
> 格納するやり方が解りません。
データとは?
数値?、バイナリ?、ポインタ?

どのようにしてそれを取得したの?

もう少し具体的にかかれたほうがよいかと思います。
# OS,コンパイラ等の開発&実行環境も明記したほうがよいです。



この投稿にコメントする

削除パスワード

No.22402

Re:文字列配列にデータを格納
投稿者---とおる(2005/08/03 21:37:32)


>データとは?
>数値?、バイナリ?、ポインタ?
文字列です。

>どのようにしてそれを取得したの?
DBにSQL文を発行して取得しました。

>もう少し具体的にかかれたほうがよいかと思います。
># OS,コンパイラ等の開発&実行環境も明記したほうがよいです。
すみません。
OSはUNIXです。
コンパイラは、良く判りません。
ただ、makefileを使ってコンパイルしています。

先ほどコンパイルしてみましたが、strcatのところで
警告が出ました。
「互換性のないポインタ型からの引数 1 個の `strcat' を渡しています」

これは、どのような警告になるのでしょうか。
コンパイルは通ったのですが、気になって...。

宜しくお願いします。


この投稿にコメントする

削除パスワード

No.22404

Re:文字列配列にデータを格納
投稿者---まきじ(2005/08/03 22:23:09)


>「互換性のないポインタ型からの引数 1 個の `strcat' を渡しています」

strcat(&str1,str2); の様に & をつけてるとかではないでしょうか?


この投稿にコメントする

削除パスワード

No.22410

Re:文字列配列にデータを格納
投稿者---とおる(2005/08/04 01:41:06)


こんにちは。
すみません。
プログラムが間違っていました。

(ループ開始)
if (i == 0) {
strcpy(temp[0],"取得データ");
} else {
strcat(temp,"取得データ");
}
(ループ終了)

先ほどの警告、
「互換性のないポインタ型からの引数 1 個の `strcat' を渡しています」
はstrcatのところで出ます。

やりたいのは、取得データ(文字列)を
つなぎ合わせてtempに入れたいと考えています。

宜しくお願いします。


この投稿にコメントする

削除パスワード

No.22412

Re:文字列配列にデータを格納
投稿者---とおり(2005/08/04 09:13:05)


>やりたいのは、取得データ(文字列)を
>つなぎ合わせてtempに入れたいと考えています。

#include <stdio.h>
#include <string.h>

int main(void)
{
  int i;
  char temp[256] = "";

  for (i = 0; i < 5; i++) {
    strcat(temp, "取得データ");
  }

  printf("%s\n", temp);

  return(0);
}


/***** 実行結果 *****/
取得データ取得データ取得データ取得データ取得データ


この投稿にコメントする

削除パスワード

No.22413

Re:文字列配列にデータを格納
投稿者---円零(2005/08/04 09:36:09)


strcpyとstrcatの第一引数の型は共にchar*です。
temp[0]とtempでは確実に型が異なりますから、
少なくともどちらか一方が間違っているのは明らかです。

それと細かいことですが、
なんで"取得データ"って、ダブルクォーテーション""で囲んでるんでしょう?
これじゃあ取得した文字列ではなくて"取得データ"と言う文字列をつなぎたいようにしか見えません。


この投稿にコメントする

削除パスワード

No.22414

Re:文字列配列にデータを格納
投稿者---まきじ(2005/08/04 09:36:11)


既に解答はでてますが。

>strcpy(temp[0],"取得データ");

strcpy(&temp[0],"取得データ"); あるいは
strcpy(temp,"取得データ");
です。


この投稿にコメントする

削除パスワード

No.22415

Re:文字列配列にデータを格納
投稿者---nop(2005/08/04 10:10:30)


>(ループ開始)
>if (i == 0) {
>strcpy(temp[0],"取得データ");
>} else {
>strcat(temp,"取得データ");
>}
>(ループ終了)
>「互換性のないポインタ型からの引数 1 個の `strcat' を渡しています」

上記のプログラムと警告文から、
引数に渡している変数の型の問題である事は明白なのに、
何故、変数「temp」の宣言は省略するのでしょうか?
これを省略せずに書けば、正確な回答がすぐに得られるはずなのに...

# もっと言うと、SQL でデータを取得する部分や、
# 実際につなぎ合わせを行い箇所のソースを
# そのまま載せると、もっと良い回答が得られるかと。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧