C/C++ ポインタ入門 > 文字コード 演習問題
Nobuhide Tsuda
Oct-2013
演習問題
※ 以下の問題に於いて、文字は ASCII エンコーディングであるものとする。
- ★void my_strdumpDec(const char *str) 引数で指定された文字列の各文字の文字コードを10進数で表示する関数を実装しなさい
- my_strdumpDec("123ABCabc#$&"); を実行してみなさい
- 上記の結果が正しいかどうかを ここ で確認しなさい。
- ★void my_strdumpHex(const char *str) 引数で指定された文字列の各文字の文字コードを16進数で表示する関数を実装しなさい
- my_strdumpHex("123ABCabc#$&"); を実行してみなさい
- 上記の結果が正しいかどうかを ここ で確認しなさい。
- ★bool my_isdigit(char ch) 引数の文字が数字('0' ~ '9')であれば true を、そうでなければ false を返す関数を実装しなさい
- my_isdigit('0') ~my_isdigit('9')が true を返すことを確認しなさい
- my_isdigit('A') ~my_isdigit('Z')が false を返すことを確認しなさい
- my_isdigit('a') ~my_isdigit('z')が false を返すことを確認しなさい
- my_isdigit('#'), my_isdigit('@'), my_isdigit('|')が false を返すことを確認しなさい
- ★bool my_isalpha(char ch) 引数の文字が英字('A' ~ 'Z', 'a' ~ 'z')であれば true を、そうでなければ false を返す関数を実装しなさい
- my_isdigit('0') ~my_isdigit('9')が false を返すことを確認しなさい
- my_isdigit('A') ~my_isdigit('Z')が true を返すことを確認しなさい
- my_isdigit('a') ~my_isdigit('z')が true を返すことを確認しなさい
- my_isdigit('#'), my_isdigit('@'), my_isdigit('|')が false を返すことを確認しなさい
- ★bool my_isalnum(char ch) 引数の文字が英字('A' ~ 'Z', 'a' ~ 'z')または数字('0' ~ '9')であれば true を、そうでなければ false を返す関数を実装しなさい
- my_isdigit('0') ~my_isdigit('9')が true を返すことを確認しなさい
- my_isdigit('A') ~my_isdigit('Z')が true を返すことを確認しなさい
- my_isdigit('a') ~my_isdigit('z')が true を返すことを確認しなさい
- my_isdigit('#'), my_isdigit('@'), my_isdigit('|')が false を返すことを確認しなさい
- ★bool my_isupper(char ch) 引数の文字が英大文字('A' ~ 'Z')であれば true を、そうでなければ false を返す関数を実装しなさい
- my_isdigit('0') ~my_isdigit('9')が false を返すことを確認しなさい
- my_isdigit('A') ~my_isdigit('Z')が true を返すことを確認しなさい
- my_isdigit('a') ~my_isdigit('z')が false を返すことを確認しなさい
- my_isdigit('#'), my_isdigit('@'), my_isdigit('|')が false を返すことを確認しなさい
- ★bool my_islower(char ch) 引数の文字が英小文字('a' ~ 'z')であれば true を、そうでなければ false を返す関数を実装しなさい
- my_isdigit('0') ~my_isdigit('9')が false を返すことを確認しなさい
- my_isdigit('A') ~my_isdigit('Z')が false を返すことを確認しなさい
- my_isdigit('a') ~my_isdigit('z')が true を返すことを確認しなさい
- my_isdigit('#'), my_isdigit('@'), my_isdigit('|')が false を返すことを確認しなさい
- ★char my_toupper(char ch) 引数の文字が英小文字('a' ~ 'z')だった場合は英大文字('A' ~ 'Z')に変換した文字を返しなさい。それ以外の場合は引数の文字をそのまま返しなさい
- my_toupper('7') が '7' を返すことを確認しなさい
- my_toupper('H') が 'H' を返すことを確認しなさい
- my_toupper('h') が 'h' を返すことを確認しなさい
- ★char my_tolower(char ch) 引数の文字が英小文字('A' ~ 'Z')だった場合は英大文字('a' ~ 'z')に変換した文字を返しなさい。それ以外の場合は引数の文字をそのまま返しなさい
- my_tolower('7') が '7' を返すことを確認しなさい
- my_tolower('H') が 'h' を返すことを確認しなさい
- my_tolower('h') が 'H' を返すことを確認しなさい
- ★★void my_toupper(char *str) 引数の文字列中の英小文字('a' ~ 'z')を英大文字('A' ~ 'Z')に変換しなさい。
- char str[] = "123ABCxyz"; my_toupper(str); 実行後に str の内容を表示して、処理が正しいことを確認しなさい。
- ★★void my_tolower(char *str) 引数の文字列中の英大文字('A' ~ 'Z')を英小文字('a' ~ 'z')に変換しなさい。
- char str[] = "123ABCxyz"; my_tolower(str); 実行後に str の内容を表示して、処理が正しいことを確認しなさい。
- ★int my_atoi(char ch) 以下の関数を実装しなさい。
引数の文字が数字('0' ~ '9')であればそれを10進数に変換した値を返しなさい。数字でない場合は -1 を返しなさい。
- my_atoi('0') が 0 を返すのを確認しなさい
- my_atoi('7') が 7 を返すのを確認しなさい
- my_atoi('a') が -1 を返すのを確認しなさい
- ★★int my_atoi(const char *src) 引数に文字列をとり、それが数字列で始まっていた場合は、
文字列を10進数に変換した値を返しなさい。数字以外で始まっていた場合は -1 を返しなさい。
- my_atoi("123") が 123 を返すことを確認しなさい。
- my_atoi("a123") が -1 を返すことを確認しなさい。
- my_atoi("098#") が 98 を返すことを確認しなさい。
- ★★★void my_getword(char *dst, const char *str) 引数 str に含まれる最初の英単語を dst に格納する関数を実装しなさい。英単語を含まない場合は空文字列を設定しなさい
- 単体テスト
- my_getword(dst, "") が "" を返すことを確認しなさい
- my_getword(dst, "123") が "" を返すことを確認しなさい
- my_getword(dst, "abc") が "abc" を返すことを確認しなさい
- my_getword(dst, "--abc") が "abc" を返すことを確認しなさい
- my_getword(dst, "XYZ--") が "XYZ" を返すことを確認しなさい
- my_getword(dst, "--abcXYZ--") が "abcXYZ" を返すことを確認しなさい
前:
|上:C/C++ ポインタ入門
|次: