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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
printfの%eで指数部分の桁数を...
-
c言語の多次元配列で1から100ま...
-
CreateProcessでの環境変数の設...
-
ビットデータのチェック方法
-
【Excel VBA】10進数を2進数に...
-
CSVデータについての質問です。
-
linuxのシェルでファイル名に先...
-
C言語の構造体にてバブルソート...
-
VisualBasicでレジストリキーの...
-
オセロゲーム 2次元配列で困...
-
値によって組み分けを作成する...
-
'dataType' 引数を Null にする...
-
stable diffusionのエラー
-
C言語についてです! 同じ年の...
-
c言語での wavファイルの編集(...
-
C#でのswitch文
-
エクセルVBA:日付データの変換...
-
COBOLのCOMP形式について
-
10Mバイトて文字数に すると何...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
stable diffusionのエラー
-
ポインター引数の関数でコンパ...
-
printfの%eで指数部分の桁数を...
-
パイソン、データーサイエンス...
-
エクセルVBA:日付データの変換...
-
C#でのswitch文
-
int型(2バイト)データの分割
-
CreateProcessでの環境変数の設...
-
【Excel VBA】10進数を2進数に...
-
python 気象データの取得
-
テキストファイルの結合について
-
RegQueryValueExでの2バイト文字
-
linuxのシェルでファイル名に先...
-
'dataType' 引数を Null にする...
-
C言語についてです! 同じ年の...
-
オセロゲーム 2次元配列で困...
-
PINVOKEで構造体配列をマーシャ...
-
matlabのソースコードをpython...
-
C言語の勉強しています。すみま...
-
System.Collections.ArrayList ...
おすすめ情報