![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
構造体に文字列を入れたいのですがうまくいきません。
処理としては身長が180センチ以上の生徒には「tall」という文字列をつける、という処理です。
#include <stdio.h>
#define NUM 4
typedef struct{
int b ;/*学生番号*/
int s ;/*身長*/
char k;/*結果*/
}Stdya;
int main (void){
Stdya std[NUM];
char m [ ] = "tall";
int i;
for(i=0;i<NUM;i++){
printf("学生番号");
scanf("%d",&std[i].b);
printf("身長");
scanf("%d",&std[i].s);
if(180<=std[i].s){
&std[i].k = m;
}
printf("%d\t%d\t%s\n",std[i].b,std[i].s,std[i].k);
}
return 0;
}
20行目の処理が間違っているのはよくわかります
どうすれば「tall」処理をできるか教えてください
No.1ベストアンサー
- 回答日時:
構造体のメンバーkの宣言が charの単一変数です
char単一変数には 't'などの1文字しか格納出来ません
char k[10];
といった文字配列宣言しておきます
Cランタイムライブラリを使っていいなら strcpyなどでコピーしましょう
ランタイム関数を使えないなら
std[i].k[0] = 't';
std[i].k[1] = 'a';
std[i].k[2] = 'l';
std[i].k[3] = 'l';
std[i].k[4] = '\0';
といった具合に 1文字ごとに代入します
ありがとうございます!
どんな方法を使ってもかまわないので「strcpy」を使って見ようと思います。
使えなかったときの方法までご丁寧にありがとうございます!
一文字ずつの代入になるのですね。。。文字だから「¥0」もつける。。よくわかりました。
ありがとうございました
No.2
- 回答日時:
#include <stdio.h>
#include <string.h>
#define NUM 4
typedef struct{
int b ;/*学生番号*/
int s ;/*身長*/
char k[10];/*結果*/
}Stdya;
int main (void){
Stdya std[NUM];
int i;
for(i=0;i<NUM;i++){
printf("学生番号");
scanf("%d",&std[i].b);
printf("身長");
scanf("%d",&std[i].s);
strcpy(std[i].k,180<=std[i].s?"tall":"");
printf("%d\t%d\t%s\n",std[i].b,std[i].s,std[i].k);
}
return 0;
}
ソースコードありがとうございます!
早速「strcpy(std[i].k,180<=std[i].s?"tall":"");」を挿入したらUPできました
ヘッダが足りなかったんですね。。。strcpyを使うなんて頭に浮かびませんでした。
ありがとうございます!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
switch文のエラーについて
-
gccでコンパイル時のエラー
-
空ENTERの判別
-
C++ 平均値、最大値と最小値の...
-
構造体配列のvectorへの変換と...
-
C++でShowCursorを使いたい。
-
構文エラーが出ているのですが...
-
#defineの使い方について
-
指定した文字を削除したい
-
VC++ iostreamの不具合(?)
-
VxWorks 6.4ソケット接続につい...
-
VS2019でofstreamが未定義になる
-
snprintfが使用できない。
-
2重の(?)の#include
-
c++のvirtual関数および継承に...
-
構造体に決められた文字列を入...
-
プログラミング
-
opencvを使って画像比較
-
C言語からgnuplot呼び出し
-
atlbase.h と afxwin.hの同時定義
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラーが出ているのですが...
-
switch文のエラーについて
-
enumの値から定義名を文字列化...
-
VC++で文字列から任意の文字を...
-
なぜ、C++の標準ヘッダをインク...
-
空ENTERの判別
-
std::wstringのメモリリークに...
-
C言語からgnuplot呼び出し
-
リモートデスクトップの接続元I...
-
JPEGやPNGが読めるLoadImage関数
-
このプログラミング誰か教えて...
-
プログラミング
-
#include "fstream.h"
-
C++での <iostream.h>と<iostre...
-
std::map の const 修飾について
-
構造体配列のvectorへの変換と...
-
#defineの使い方について
-
VS2019でofstreamが未定義になる
-
指定した文字を削除したい
-
構造体に決められた文字列を入...
おすすめ情報