高度プログラミング演習 (10) 演習問題 • 文字列 s0 中に文字列 s1 があれば、それを s2 に置き換えるプログラムを作成せよ。 – s0: Bill likes dogs and Bill has three dogs. – s1: Bill – s2: Ken 演習問題のヒント +2 +3 #include <stdio.h> #include <string.h> void myaA(char *ch) { if(*ch >= 'a' && *ch <= 'z') *ch = *ch + ('A' -'a'); } void main() { char s0[128]; char s1[128]; char s2[128]; char s3[128]; unsigned int i,cnt=0; char *q; gets(s0); gets(s1); gets(s2); q=s3; for(i=0;i<strlen(s0)-strlen(s1)+1;i++){ if(!strncmp(s0+i,s1,strlen(s1))){ strcpy(q,s2); q= q + strlen(s2); i = i + strlen(s1); } *q= *(s0 +i); q=q+1; } for(;i<strlen(s0);i++){ *q= *(s0 + i); q=q+1; } *q='\0'; printf("%s\n%s\n",s0,s3); } 構造体 • 名前:山田花子 • 年齢:30 • 身長:160cm • 名前:鈴木太郎 • 年齢:32 • 身長:175cm いくつかの共通なデータのメンバーを持つと きは、まとまったデータ型として扱えれば便利 である。 構造体 • struct person { – char *name; – int age; – int tall; – } hanako,tarou; hanako.name = “Yamada Hanako”; hanako.age=30; hanako.tall=160; ポインタ型の構造体 • struct person { – char *name; – int age; – int tall; – } hanako, *p_hanako; p_hanako=&hanako p_hanako->name = “Yamada Hanako”; p_hanako->age=30; p_hanako->tall=160; 例題問題 • 1)電話番号、2)名前をメンバーにした構造体 を定義して、 – 3件のデータを入力し – 入力したデータを出力する • プログラムを作成せよ。 • メンバ情報の入出力には構造体を引数にし た関数を作ること。 練習問題 • 構造体のメンバに電子メールアドレスを追加 せよ。 • この構造体を使って – 指定した電話番号にマッチするデータの情報を 出力するプログラムを作成せよ。 – 指定した名前にマッチするデータの情報を出力す るプログラムを作成せよ。 演習問題(1) • 品物名、値段をメンバーにしたデータ構造体 を作り、入出力するプログラムを作成せよ。 • 品目として、 – 食品:0 – 衣料:1 – その他:2 – と定義して、メンバーに品目を追加せよ。 • 品目の種類ごとにメンバー情報を出力するプ ログラムを作成せよ。 演習問題(2) • 曲名、時間をメンバにした構造体を作り、ある 音楽CDの曲情報を入力、出力できるプログ ラムを作成せよ。 • そのCDの総時間出力するプログラムを作成 せよ。
© Copyright 2024 ExpyDoc