演習1-20 K&R プログラミング言語C
演習1-20 タブ文字をタブ・ストップまでのスペースに変換する。 #include <stdio.h> #define DEFAULT_TABSTOP 4 void put_space(int len, char c); int main(int argc, char *argv[]) { int c, i, n; n = DEFAULT_TABSTOP; i = 0; while (…続きを読む
演習1-20 タブ文字をタブ・ストップまでのスペースに変換する。 #include <stdio.h> #define DEFAULT_TABSTOP 4 void put_space(int len, char c); int main(int argc, char *argv[]) { int c, i, n; n = DEFAULT_TABSTOP; i = 0; while (…続きを読む
演習1-19 行に含まれる改行文字を逆転しないように処理する。 #include <stdio.h> #define MAXLINE 1024 /* 入力行の最大長 */ int mygetline(char line[], int maxline); void reverse(int len, char str[]); int main(int argc, char *argv[])…続きを読む
演習1-18 #include <stdio.h> #define MAXLINE 1024 /* 入力行の最大長 */ int mygetline(char line[], int maxline); int delete_tail_blank(int len, char line[]); int main(int argc, char *argv[]) { int len, new…続きを読む
1.9 文字配列 C では文字列は ‘\0’ を終端とする配列で表現する。 文字配列の長さは ‘\0’ の分が含まれる。 演習1-16 問題文の意味がよくわからないのでパス。 演習1-17 #include <stdio.h> #define MAXLINE 1024 /* 入力行の最大長 */ #define OVERLINE 80 /* この数値より長い行を印字 */ int my…続きを読む
1.7 関数 演習1-15 #include <stdio.h> #define LOWER_TEMP 0 #define UPPER_TEMP 300 #define STEP_TEMP 20 float fahr2celsius(float fahr); float celsius2fahr(float celsius); int main(int argc, char *argv…続きを読む
1.6 配列 if (c >= ‘0’ && c <= ‘9’) { ASCIIコードでは、’0′ は 48、’9′ は 57、となるので上記のコードは以下と同じ意味となる。 if (c >= 48 && c <= 57) { c が数字の場合以下のコードの配列の添字は 0 から 9 の範囲の数となる。 ndigit[c-‘0’]; 演習1-…続きを読む
1.5.2 文字のカウント while や for ではループ本体に入る前にテストが行なわれる。 最初からテストに失敗した場合は本体は1度も実行されない。 1.5.3 行数のカウント シングルクオートで囲まれた文字の内部表現を文字定数と呼ぶ。 文字定数は整数を表現する。 ‘A’ は 65 を表わす。 エスケープ文字は文字定数の中でも有効。’\n’ は 10 を表す。 ‘\n’ は1つの文字を表すの…続きを読む
1.1 手始めに プログラムには main 関数が必要。 演習1-2 #include <stdio.h> int main(int argc, char *argv[]) { printf("hello,\x\n"); return 0; } $ gcc -o ex1-2 ex1-2.c ex1-2.c:13:12: error: \x used with no …続きを読む