例題1:長さ5の文字列 "abcde" を格納するためのメモリを確保せよ。
解答1: ⇒ list0201.c
ポイント:
例題2:文字列の長さを返す関数 int mystrlen(char *) を作成せよ。
解答2: ⇒ list0202.c
ポイント:
例題3:2つの文字列を継いだ文字列を返す関数 char *mystrcat(char *, char *) を作成せよ。引数の文字列の長さを数え、メモリを確保して、継いだ文字列を作ること。
解答3: ⇒ list0203.c
ポイント:
文字列の中の半角数字を全角数字に換えた文字列を返す関数 unsigned char *zenkakunumber(unsigned char *) を作成せよ。必要最小限のメモリを確保すること。全角文字はeucコードとする。(prac0201.c)
プログラムの概形: /* prac0201.c */ #include <stdlib.h> #include <stdio.h> mystrlen をここに書く int mynumberlen(unsigned char *s) { 文字列中の半角数字の数を数える } unsigned char *zenkakunumber(unsigned char *s) { 自分で作る } main() { puts(zenkakunumber("鳥取市湖山町南4-101")); }
正解の出力:(4と101は全角文字)
鳥取市湖山町南4-101
プログラムの概形:
/* prac0202.c */ #include <stdlib.h> #include <stdio.h> int myeucstrlen(unsigned char *s) { 全角文字のバイト数を返す関数を自分で作る } unsigned char *myeucstrcat(unsigned char *s1,unsigned char *s2) { 自分で作る } main() { puts(myeucstrcat("abc鳥取123県45","湖de山町")); }
正解の出力:
鳥取県湖山町
課題1,および,課題2のプログラムをプリントアウトし,各行にコメントを手書きする.コメント付きプログラムリストを提出せよ.
来週(4月28日)の授業開始時に集めます.
2005.4.18 by tokuhisa