先日は配列についてご指導頂き、ありがとう御座いました。
連続投稿&また、いつも質問だけで相変わらず申し訳御座いません。(謝
こちらの掲示板での、皆さんのご質問やご解説、とても勉強になってます。
傍観してるだけで大変恐縮です。(_ _)
どうもありがとうございます。
今日は、構造体について勉強(購入した本や参考サイトで復習)をしてたのですが・・・
今回も長文になります。大変申し訳御座いません。
↓自分は、C言語だと思って作ったソース
----------------------------------------------------------------------------------------
// kouzoutai.c
#include <stdio.h>
//#include <string.h> // ←strcpy関数・C言語(.C)の時は必要無い?
struct munba{ // 構造体名:munba
char name[10]; // ↓メンバ
char *sex; //
int year; //
float f_pai; //
double not_pai; // ↑メンバ
};//munba data; // <C++(.cpp) C言語(.c)の場合は、コメントアウト不可? ; は必要
int main(){
struct munba data; // <C言語(.c) C++(.cpp)の場合はコメントアウト不可?
strcpy(data.name, "ムンバ"); // . (←ドット)構造体メンバ演算子
//strcpy_s(data.name, "ムンバ"); // strcpy_s関数は、C言語(.c)では使えない?
printf("名前:%s\n", data.name); //整数:%d 文字:%c 文字列:%s 実数:%f など
data.sex = "男";
printf("性別:%s\n", data.sex);
data.year = 14;
printf("年齢:%d歳\n", data.year);
data.f_pai = 3.141592653589793;
printf("円周率:%f\n", data.f_pai);
data.not_pai = 3141592653.589793;
printf("円周率の小数点の位置変更:%fは無意味です。\n\n", data.not_pai);
return 0;
}
----------------------------------------------------------------------------------------↓自分は、C++だと思って作ったソース
----------------------------------------------------------------------------------------
// kouzoutai.cpp
#include <stdio.h>
#include <string.h> // ←strcpy関数・C言語(.C)の時は必要無い?
struct munba{ // 構造体タグ:munba
char name[10]; // ↓メンバ
char *sex; //
int year; //
float f_pai; //
double not_pai; // ↑メンバ
};munba data; // <C++(.cpp) C言語(.c)の場合は、コメントアウトしてもしなくてもOK? ; は必要
int main(){
//struct munba data; // <C言語(.c) C++(.cpp)の場合はコメントアウトしてもしなくてもOK?
//strcpy(data.name, "ムンバ"); // . (←ドット)構造体メンバ演算子
strcpy_s(data.name, "ムンバ"); // strcpy_s関数は、C言語(.c)では使えない?
printf("名前:%s\n", data.name); //整数:%d 文字:%c 文字列:%s 実数:%f など
data.sex = "男";
printf("性別:%s\n", data.sex);
data.year = 14;
printf("年齢:%d歳\n", data.year);
data.f_pai = 3.141592653589793;
printf("円周率:%f\n", data.f_pai);
data.not_pai = 3141592653.589793;
printf("円周率の小数点の位置変更:%fは無意味です。\n\n", data.not_pai);
return 0;
}
----------------------------------------------------------------------------------------自分が見易い様に、コメントとか字下げとかしてますので
見づらい様でしたら、どうかご勘弁下さい。
以上の構造体に関するソースを作るのに
参考にさせて頂いた本は、「猫でもわかるC言語プログラミング 第2版」
参考にさせて頂いたサイトは、こちらの「ゲームプログラミングの館」「苦しんで覚えるC言語」など
です。
ちなみに「苦しんで覚えるC言語」のサイトのアドレスなのですが
旧アドレス:http://homepage3.nifty.com/mmgames/c_guide/
新アドレス:http://9cguide.appspot.com/
と、お引越しされた様です。
相変わらず、自分が見た時に思い出せる様に
自分勝手に遊んで、保存してるソースです。
そこで、構造体の復習をしていたのですが(1年以上、プログラムの勉強さぼってました。)
上述したソースの、C言語(.c)とC++(.cpp)の違いが、ごちゃごちゃになってしまいました。(自爆
c++に関しての、教本とかサイトは勉強していません。
いつの間にか、導入されているのかもしれませんが。^^;
環境:Windows NT(32bit) VC++2008(SP1)
質問1:strcpy関数を使いたい時に
// kouzoutai.c のソースでは、
#include <string.h> は、必要無いみたいなのですが
// kouzoutai.cpp のソースでは、
#include <string.h> が、必要でした。
C言語では strcpy関数 は、
#include <stdio.h> から呼び出せて
#include <string.h> には入っていない。
C++ では strcpy関数 は
#include <stdio.h> には入ってないで
#include <string.h> から呼び出せる。
と、解釈して良いのでしょうか?
誤字・脱字等ありましたら、ご勘弁下さい。
相変わらず勝手ながら、今日は寝てしまいます。
悩んだ挙句、いつも皆さんに頼ってしまってます。
ご指導頂ける方がいらっしゃいましたら
ご解説の程、宜しくお願い致します。
すみません。おやすみなさい。(謝
---編集部位---
preタグ付け忘れてました。
すみません。
