標準プログラマーズ ライブラリシリーズC言語 文字列操作+ファイル入出力 完全制覇

[表紙]C言語 文字列操作+ファイル入出力 完全制覇

紙版発売

B5変形判/296ページ

定価2,618円(本体2,380円+税10%)

ISBN 4-7741-1614-9

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

C言語において,文字列を扱う操作は,他の言語ほど易しくありません。簡単な操作だけでも,配列を使い,関数を使わなくてはなりません。本書は配列→文字列操作をより分かりやすく,深く解説します。また,ファイルの入出力動作についても解説を行っています。

こんな方におすすめ

  • C言語をはじめたばかりの人
  • 文字列をどうやって扱ったらよいのか分からない人
  • 日本語やUnicodeについて学習したい人

著者の一言

ひととおりC言語を学んだ後で,本当に実力をつけるために避けて通れないテーマです。本書がその一助になることを願っています。

目次

第1章 C言語の標準としてのASCIIコード

  • 1-1 ASCIIコードとC言語
    • 1-1-1 数字の判定と数値の変換〜数字('0'〜'9')の文字コードは連続している〜
    • 1-1-2 アルファベットの大文字,小文字は連続している
    • 1-1-3 小文字−大文字=スペース
    •  NOTE 1バイト文字コードの識別と変換
    • 1-1-4 エスケープ文字と空白文字
    • 1-1-5 文字と文字列 ' ' と " " の違い
    • 1-1-6 文字と文字列とchar型のポインタの関係
    •  NOTE 長い文字列の記述方法
    • 1-1-7 ポインタの復習
  • 1-2 配列,ポインタと文字列のアドレス
    • 1-2-1 文字列の初期化と代入
    •  NOTE ポインタと配列の違い
  • 1-3 printf()の書式指定
    • 1-3-1 文字列の表示 %s
    • 1-3-2 整数値の表示 %d,%x,%o
    • 1-3-3 実数の表示 %f,%e,%g
    • 1-3-4 printfにcharを渡すとintになる
    •  NOTE 127+1=−128? 2の補数による整数の表示形式
  • 1-4 scanf()による入力
    • 1-4-1 scanf()にはポインタを渡す Call by Value とCall by Reference
  • 1-5 scanf()とprintf()の書式指定の違い
    • 1-5-1 幅指定 %nd
    • 1-5-2 floatとdouble %nfおよび%f,%lf
    • 1-5-3 文字列 %s
    • 1-5-4 1文字 %c
    • 1-5-5 scanf()における区切り文字の指定
    • 1-5-6 '*'の役割
    •  COLUMN 関数値を使う,使わない?
  • 1-6 sprintf()による文字列整形
    • 1-6-1 文字列を結合する
    • 1-6-2 整数値を数字文字列に変換する
  • 1-7 sscanf()による文字列の変換
    • 1-7-1 scanf()の入力エラーを回避する方法(fgetsとsscanf)
    • 1-7-2 さまざまな型のランダム入力
  • 1-8 可変パラメータの仕組み
    •  NOTE インクルードファイルとプロトタイプ宣言

第2章 文字列処理の基本

  • 2-1 文字列の長さを知る strlen()
    •  NOTE 条件文の真とは0以外である
  • 2-2 コピーする strcpy()
  • 2-3 文字列を比較する strcmp()
    •  NOTE strncpy()は要注意!! strn系関数とmem系関数
    •  NOTE ポインタと配列ではどちらが速いか
  • 2-4 2つの文字列を結合する strcat()
    •  NOTE constを使おう
  • 2-5 文字列を整数値に変換する atoi(),atol()よりstrtol(),strtoul()
  • 2-6 文字列を実数値に変換する atof()よりstrtod()
  • 2-7 文字列から1種類の文字を探す strchr(),strrchr()
    •  NOTE charの代わりにintを使う理由
  • 2-8 文字列から複数種類の文字を探す strpbrk(),strscpn(),strspn()
    •  NOTE strspn()のマイクロソフトによる実装方法
  • 2-9 単語を切り出す strtok()
  • 2-10 文字列を探す strstr()
    •  NOTE 文字列探索アルゴリズム

第3章 ポインタ配列と可変長文字列の操作

  • 3-1 コマンドラインパラメータとポインタ配列
  • 3-2 関数パラメータとしてのポインタ配列
    •  NOTE 多次元配列のパラメータを持つ関数
  • 3-3 固定長配列による文字列の操作
  • 3-4 ポインタ配列を使った可変長文字列の操作
  • 3-5 リストによる可変長文字列の操作
  • 3-6 文字列のソート配列とポインタの違い

第4章 インターナショナル・プログラマへの道 ロケールとUnicode

  • 4-1 文字の種類を操作する(is系,to系ルーチン)
  • 4-2 is系,to系ルーチンの本当の姿(VC++とGNUの実装)
    •  NOTE 文字コード小史
  • 4-3 ロケール(locale)による多国語対応
    •  NOTE 時刻管理ルーチン
  • 4-4 mblen()による多バイト文字(MBCS)の操作
  • 4-5 wchar_t型とワイド文字(DBCS)処理関数
  • 4-6 Unicodeによるプログラミング環境

第5章 ファイル操作

  • 5-1 fprintf()とfscanf()
    • 5-1-1 printf()からfprintf()へ テキストファイル出力
    • 5-1-2 scanf()からfscanf()へ テキストファイル入力
    • 5-1-3 fopen()とfclose()がする仕事
    • 5-1-4 入出力ストリームとバッファリング
  • 5-2 fprintf()とfscanf()のいくつかの例
    • 5-2-1 華氏と摂氏の換算表を作る fprintf()によるファイル出力
    • 5-2-2 データファイルの数値の合計を求めるfscanf()によるファイル入力
    • 5-2-3 結果をファイルに書き出す 2つのファイルを操作する
    •  NOTE enumによるシンボルの定義
  • 5-3 テキストファイルの操作をマスターする
    • 5-3-1 テキストファイルを表示する
    • 5-3-2 テキストファイルを比較する
    • 5-3-3 2つのテキストファイルを1つにマージする
    • 5-3-4 テキストファイルとバイナリファイル
    • 5-3-5 ファイルダンプ fread()とfwrite()
    • 5-3-6 1バイト単位の入出力 fgetc(),fputc()
    • 5-3-7 漢字コードの判定 ungetc()を使ったファイルダンプ
  • 5-4 FILE構造体を探る 181
    • 5-4-1 FILE構造体はなにを管理しているか
    • 5-4-2 FILEポインタからファイルアクセスの情報を取得する feof(),ferror(),ftell()
    • 5-4-3 バッファを制御する setvbuf()
  • 5-5 低水準入出力
  • 5-6 バイナリファイルの操作をマスターする
    • 5-6-1 CSVファイルをバイナリファイルに変換する fread(),fwrite()と構造体
    • 5-6-2 アラインメントとバイトオーダー
    • 5-6-3 レコードを追加する a+bモードのアクセスとrewind 
    • 5-6-4 レコードを編集する r+bモードのアクセスとfseek
    • 5-6-5 レコードを表示する rbモードのアクセス ftell(),fseek()
    • 5-6-6 レコードを削除する テンポラリファイルとwbモード tmpfile(),freopen()
    • 5-6-7 インデックスによるファイルアクセス

第6章 ケーススタディ

  • 6-1 ワイルドカードによる検索
  • 6-2 Base64のエンコード・デコード
  • 6-3 #includeを展開する
  • 6-4 関数呼出しのクロスリファレンス

索引