Download presentation
Presentation is loading. Please wait.
1
文字配列の課題1 解説 /* a601056 */ #include <stdio.h> main( ) { int i;
文字配列の課題1 解説 文字配列に “I am a student.” を入れておく。キーボードから数字を一つ入力すると、前から数えてその数字に当たる文字を一つ表示するプログラムを作成せよ。 例 入力が 3 のとき a を表示 解答例 /* a */ #include <stdio.h> main( ) { int i; char m[16]=“I am a student.”; scanf(“%d”,&i); printf(“%c\n”,m[i-1]); }
2
普通の配列と文字配列の比較 #include <stdio.h> 基本的には同じ main() 相違点 { 初期化の方法
int i; char m[16]=“I am a student.”; scanf(“%d”,&i); printf(“%c\n”,m[i-1]); } 基本的には同じ 相違点 初期化の方法 最小限必要な要素数 文字配列: 文字数+1 普通の配列:データの数 #include <stdio.h> main() { int n,tuki[12]={31,28,31,30,31,30,31,31,30,31,30,31}; scanf(“%d”,&n); printf(“%d\n”,tuki[n-1]); }
3
文字配列の課題2 解説 /* a601170 */ #include <stdio.h> main( ) {
文字配列の課題2 解説 文字配列に “I am a student.” を入れておく。キーボードから文字を一つ入力すると、その文字が前から何番目かを表示するプログラムを作成せよ。 例 入力が s のとき 8 を表示 解答例 /* a */ #include <stdio.h> main( ) { char t, m[16]=“I am a student.”; int i; printf(“moji?:”); scanf(“%c”,&t); for(i=0;i<=15;i=i+1) if(t==m[i]) printf(“%d\n”,i+1); }
4
配列と文字列 文字型変数の宣言 char 変数名; 変数1個に文字は1個 例: char moji; moji=‘a’;
または char moji=‘a’; 変数1個に文字は1個 文字型配列の宣言 char 配列名[ 文字数 + 1 以上 ]; 例; char m[15 ]=“This is a pen.”; 配列要素の値。(上の変わりに下のように代入しても良い) m[0]=‘T’, m[1]=‘h’, m[2]=‘i’, m[3]=‘s’, m[4]=‘ ’, m[5]=‘i’, m[6]=‘s’, m[7]=‘ ’, m[8]=‘a’, m[9]=‘ ’, m[10]=‘p’, m[11]=‘e’,m[12]=‘n’, m[13]=‘.’, m[14]=‘\0’ 配列要素1個に文字は1個 自動的に入れられる
5
文字配列の要素数 配列の要素数の決め方には二通りある。 char 配列名[ 文字数 + 1 以上 ]=“文字列”;
例 char m[15 ]=“This is a pen.”; char 配列名[ ] =“文字列”; 例 char m[ ]=“This is a pen.”; 自動的に文字数+1の大きさの配列となる。 ここは空っぽにしておく
6
キーボードからの文字列の入力 方法1 char mojiretu[100]; scanf(“%s”, mojiretu); 方法2
注意! &mojiretu ではない!! char mojiretu[100]; scanf(“%s”, mojiretu); 方法2 char mojiretu[100]; gets(mojiretu); scanf で は 空白は 入力終了と みなされる scanfとgetsの違い abcdef (空白なし) I am a student. scanf ○ × gets 文字列 入力関数
7
mojiretu[0]から、 \0 の入っている要素の一つ前
文字列の出力 方法1 mojiretu[0]から、 \0 の入っている要素の一つ前 まで出力 char mojiretu[100]; printf(“%s”, mojiretu); 方法2 char mojiretu[100]; int i=0; while(mojiretu[i]!=‘\0’) { printf(“%c”, mojiretu[i]); i++: } 文字の入っている配列の要素数があらかじめ分かっているならfor文でもよい
8
課 題 課題1 キーボードから英文を1行入力して配列に納め、それを出力 するプログラムを作成せよ。入出力の方法はどれでもよい。
report 課題2 課題1で、入力された文字数(空白も含める)求めるプログラム を作れ。(‘\0’が出てくるまで文字数をカウントすればよい) report 課題3 キーボードから2行英文を入力し、各行を別々の配列に納める。 2個の配列の内容をつないで一つの英文として3個目の配列に 納めて内容を表示せよ。 report
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.