• 検索結果がありません。

C言語基礎 Professor Nishi's Lectures

N/A
N/A
Protected

Academic year: 2018

シェア "C言語基礎 Professor Nishi's Lectures"

Copied!
14
0
0

読み込み中.... (全文を見る)

全文

(1)

応用Cプログラミング演習 ( 第 7

回 )

西

(2)

ポインターと配列~どちらも文字列を

格納できる点で同じ

char str1[ ]=“SOJO";

char *str2 = "SOJO";

しかし,アクセス方法が違う

アクセス 内容

str1[0] S str1[1] O str1[2] J str1[3] O str1[4] \0

アクセス 内容

アドレス A S

アドレス A+1

O

アドレス A+2

J

アドレス A+3

O

アドレス A+4

\0

str2 アドレス A

(3)

最後の「 \0 」は?

「 \0 」はヌル文字 (NULL Character) とい

う.

「 \0 」は文字列の最後を表わす終了コード

文字列の最後は必ず「 \0 」となっている

(注意 )文字列の最後は \0 でなくてはならな

いので,配列の場合,文字数より一つ多い領

域を確保しなければならない.

例えば, str[10] とすると,文字としては 9

文字までしか入れられない.

(4)

文字列操作ライブラリー関数を使

おう

strlen(): 文字列の長さを返す

strcpy(): 文字列をコピーする

strcmp(): 文字列を比較する

必ずヘッダファイル <string.h> をインクルードす

ること

(5)

strlen(): 文字列の長さを返す関数

int strlen( 文字列 )

戻り値が「文字列」の文字数である.つまり

int len;

len=strlen("Fight");

とすると, len には「 5 」が入る.

(6)

練習問題~やってみよう

 キーボードから任意の単語を入力すると,

その単語の文字数を表示するプログラムを

作れ.

始めに,「単語を入力してください.」と表

示し,キーボードから単語を入れて

「 Enter 」を押すと,

「その単語は○文字あります.」

と表示すること

(7)

回答例

#include <stdio.h>

#include <string.h>

void main()

{

char str[10];

int lenofstr;

printf(" 単語を入力してください. \n");

scanf("%s“,str);

lenofstr = strlen(str);

printf(" その単語は %d 文字ありま

す. \n",lenofstr);

}

(8)

完成したらいろいろな長さの文字列を

入れて試してみよう

 入れた文字の長さがある長さ以上になる

とエラーが出るようになる.

 何文字以上で,エラーとなるか?

(9)

strcpy(): 文字列をコピーする関

char *strcpy( コピー先の文字列 , コピー元の文字

列 );

戻り値はコピー先の文字列へのポインター

(10)

使用例

#include <stdio.h>

#include <string.h>

void main()

{

char str[100];

strcpy(str,"What a wonderful

city!");

printf("%s\n",str);

}

(11)

strcmp(): 文字列を比較する関

int strcmp( 文字列1,文字列2 );

戻り値= 0 ならば2つの文字列が一

戻り値>0 ならば文字列1>文字列

戻り値<0 ならば文字列1<文字列

(12)

練習問題~やってみよう

英文タイプ入力練習プログラム

ディスプレーに,

キーボードから「ワンダフル」の英語を入力して

下さい.

と表示し, wonderful  と,正しく入力されたら

「正解 !! 」と表示する.

つづりが正しくなければ,

「間違っています!」と表示する.

(13)

解答例

#include <stdio.h>

#include <string.h> void main()

{ char str[100]; int result;

printf(“0533099 西宏之 \n”); // レポートでは必要 printf(“ 「ワンダフル」の英語を入力してください \n"); scanf("%s",str);

result = strcmp(str, "wonderful"); if(result==0){

printf(" 正解 !!\n"); }else{

printf(" 間違っています !!\n"); } }

(14)

実力問題~やってみよう

英文タイプ入力練習プログラム

ディスプレーに,

キーボードから「ワンダフル」の英語を入力して下さい.

と表示し, wonderful  と,正しく入力されたら

「正解 !! 」と表示する.

つづりが正しくなければ,

「間違っています!」と表示する.

正解であれば,プログラムが終了し,不正解だと,正解にな

るまで,繰り返し,上記の質問をするように,改造しなさ

い.

参照

関連したドキュメント

(実被害,構造物最大応答)との検討に用いられている。一般に地震動の破壊力を示す指標として,入

シートの入力方法について シート内の【入力例】に基づいて以下の項目について、入力してください。 ・住宅の名称 ・住宅の所在地

C. 

しかし,物質報酬群と言語報酬群に分けてみると,言語報酬群については,言語報酬を与

「社会人基礎力」とは、 「職場や地域社会で多様な人々と仕事をしていくために必要な基礎的な 力」として、経済産業省が 2006

サンプル 入力列 A、B、C、D のいずれかに指定した値「東京」が含まれている場合、「含む判定」フラグに True を

パキロビッドパックを処方入力の上、 F8特殊指示 →「(治)」 の列に 「1:する」 を入力して F9更新 を押下してください。.. 備考欄に「治」と登録されます。

基準の電力は,原則として次のいずれかを基準として決定するも