
typedef struct
{
char FamilyName[32];
char FirstName[32];
int Score[5];
} Student;
void str_toupper(???)
{
for(i=0;i<50;i++){ //生徒50人いる設定
int m;
while (data[i].FirstName[m]) {
data[i].FirstName[m] = toupper(data[i].FirstName[m]);
m++;
}
構造体の名前欄?を小文字から大文字に変換する方法が知りたいです。
文字列を大文字変換する方法はわかるのですが、構造体になるとどうすればよいかわかりません。
こうかなと、上のようにがんばってみましたが、全然できませんでした。
No.3ベストアンサー
- 回答日時:
No2です。
void str_toupperを文字列を大文字に変える関数として作成し、
それを呼び出すようにしました。
1.strを大文字に変えるために、str_toupperを呼び出しています。
2.その結果を印字しています。
3.2人分の生徒のデータを設定しています。
4.2人分の生徒のFamilyNameとFirstNameを大文字に変えるために、
str_toupperを呼び出しています。
5.その結果を印字しています。
---------------------------------------------------
#include <ctype.h>
#include <stdio.h>
#include <string.h>
typedef struct
{
char FamilyName[32];
char FirstName[32];
int Score[5];
} Student;
void str_toupper(char s[])
{
int i;
i = 0;
while(s[i]){
s[i] = toupper(s[i]);
i++;
}
}
int main(void)
{
int i;
Student data[50];
int counter;
char str[] = "abcXYZ%#vv";
str_toupper(str);
printf("after str=[%s]\n",str);
//生徒2人分設定
strcpy(data[0].FamilyName,"saito");
strcpy(data[0].FirstName,"takao");
data[0].Score[0] = 10;
data[0].Score[1] = 11;
data[0].Score[2] = 12;
data[0].Score[3] = 13;
data[0].Score[4] = 14;
strcpy(data[1].FamilyName,"suzuki");
strcpy(data[1].FirstName,"masaru");
data[1].Score[0] = 20;
data[1].Score[1] = 21;
data[1].Score[2] = 22;
data[1].Score[3] = 23;
data[1].Score[4] = 24;
counter = 2; //生徒2人いる設定
for(i=0;i<counter;i++){
str_toupper(data[i].FamilyName);
str_toupper(data[i].FirstName);
}
for(i=0;i<counter;i++){
printf("%d番目の生徒\n",i+1);
printf("%s\n",data[i].FamilyName);
printf("%s\n",data[i].FirstName);
}
return 0;
}
---------------------------------------------------
実行結果
after str=[ABCXYZ%#VV]
1番目の生徒
SAITO
TAKAO
2番目の生徒
SUZUKI
MASARU
できました!!ありがとうございます!
Studentを書かなくてよいのですね。
2人分のデータを入力していただいたおかげでとても分かりやすかったです。
FirstNameの1文字目だけの場合は、FirstName[0]を入れればできますかね。
No.2
- 回答日時:
とりあえず、今の状態をいかして、なおすなら、
int m;の次の行に
m = 0;
を挿入すればOKです。( {}の対応がとれていないのは直してください)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ビットデータのチェック方法
-
エクセルVBA:日付データの変換...
-
printfの%eで指数部分の桁数を...
-
c言語 配列から数字だけをint型...
-
C#でのswitch文
-
Excel VBA グラフ作成のとき...
-
UTF-8で5~6バイトになる文字コ...
-
ピクセル,dpiから容量(バイト...
-
機種依存文字をチェックしたい。
-
10Mバイトて文字数に すると何...
-
ビットスワップとバイトスワッ...
-
最大長を用意せずにバイナリデ...
-
バイト列とバイナリ列の違いが...
-
クリップボードへのコピー
-
100MB
-
文字列の最後の一字を削除
-
PHPのCookieが有るか無いかで、...
-
64bit対応
-
cookieにカンマ区切りでつめこ...
-
UCS-2の一覧表が欲しい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
stable diffusionのエラー
-
printfの%eで指数部分の桁数を...
-
C言語の勉強しています。すみま...
-
C言語についてです! 同じ年の...
-
ポインター引数の関数でコンパ...
-
c言語での wavファイルの編集(...
-
C#でのswitch文
-
ビットデータのチェック方法
-
txtファイルを読み込んで表示関...
-
int型(2バイト)データの分割
-
Excel VBA グラフ作成のとき...
-
'dataType' 引数を Null にする...
-
Cのプログラムがどうしても動き...
-
C言語について
-
matlabでのRRI検出
-
【VBA】複数条件の検索
-
VBA セルの値入力について
-
Nextの次に、入力した数値の中...
-
System.Collections.ArrayList ...
-
PINVOKEで構造体配列をマーシャ...
おすすめ情報