Vim の Sparkup プラグインで HTML タグを Zen Coding 風に簡単入力
Vim プラグインの Sparkup (rstacruz’s sparkup at master – GitHub) で、CSS セレクタ風の記述から HTML タグ文字列を入力することができる。(zen-coding 風の入力) プラグインのインストールは上記サイトからダウンロードしたファイル内の vim/ftplugin/ 内のファイルを ~/.vim/ftplugin…続きを読む
Vim プラグインの Sparkup (rstacruz’s sparkup at master – GitHub) で、CSS セレクタ風の記述から HTML タグ文字列を入力することができる。(zen-coding 風の入力) プラグインのインストールは上記サイトからダウンロードしたファイル内の vim/ftplugin/ 内のファイルを ~/.vim/ftplugin…続きを読む
演習5-14 逆方向のソートを取り扱えるようにする。 my_qsort 関数に引数として reverse を追加し、比較の方向(<, >)を変化させる。 演習5-15 大文字・小文字の区別なしに比較できるようにする。 グローバル変数の fold を設定し、文字を比較する際に toupper で大文字に変換してから比較を行う。 演習5-16 文字、数字、空白についてのみ比較を行うようにす…続きを読む
演習5-13 読み込んだ行を、引数で与えられたサイズのリングバッファ配列に保存していく。 readlines はリングバッファ配列内の読み出し開始インデックスを返すように修正した。 writelines は読み出し開始インデックスを引数にとるように修正した。 #include <stdio.h> #include <stdlib.h> #include <string…続きを読む
5.10 コマンド行の引数 argc は、コマンド名 + 引数の数 argv は、コマンド引数の文字列配列を指すポインタの配列を指すポインタ #include <stdio.h> int main(int argc, char *argv[]) { printf("argc => %d\n", argc); while (argc– > 0) { pr…続きを読む
演習5-10 4.3 外部変数 K&R プログラミング言語C の逆ポーランド計算機をコマンド引数の文字列を利用するように修正する。 積算の記号 * は、コマンド引数ではシェルに展開されてしまうので x を利用する。 #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define NUM…続きを読む
演習5-9 #include <stdio.h> #include <stdlib.h> int day_of_year(int, int, int); int month_day(int, int, int*, int*); static char daytab[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, …続きを読む
演習5-8 月数の範囲を 1〜12、日数の範囲を 1〜daytab[leap][month]、通算日を 1〜365 + leap 以下に限定してチェックを行う。 month_day はエラー時には EXIT_FAILURE を返して関数から抜けるので、返り値 int を返すように修正する。 #include <stdio.h> #include <stdlib.h> int…続きを読む
演習5-7 読み込んだ各行文字列を保存するのに alloc の代わりに配列を引数として渡す。 lineptr には配列内の各行文字列の先頭になる配列要素のポインタを保存していく。 buf_lines : |h|e|l|l|o|\0|w|o|r|l|d|\0|f|r|o|m| … lineptr : ^ ^ ^ プログラムの実行速度は、ほとんど変化がわからなかった。 #include <s…続きを読む
演習5-6 これまでに作った各関数をポインタを使って書き直す。 getline #include <stdio.h> #define MAXLINE 1024 int getline(char*, int); int main(void) { char line[MAXLINE]; int l, m; l = getline(line, MAXLINE); printf("\…続きを読む
演習5-5 strncpy と strncat の返り値のポインタは最初に退避させておく。 strncpy #include <stdio.h> #include <string.h> #define MAX 100 char *my_strncpy(char*, char*, int); int main(void) { char *s = "hello&quo…続きを読む