先日は配列についてご指導頂き、ありがとう御座いました。
連続投稿&また、いつも質問だけで相変わらず申し訳御座いません。(謝
こちらの掲示板での、皆さんのご質問やご解説、とても勉強になってます。
傍観してるだけで大変恐縮です。(_ _)
どうもありがとうございます。
今日は、構造体について勉強(購入した本や参考サイトで復習)をしてたのですが・・・
今回も長文になります。大変申し訳御座いません。
↓自分は、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タグ付け忘れてました。
すみません。
