C 文字列操作 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(文字列ファイルへの入出力)
(文字列と日付・日時・時間の変換)
5,269行: 5,269行:
  
 
と上記のように時間の表記を文字列に変換できます。ICUによる変換は時間があれば、サンプルを作成したいと思います。
 
と上記のように時間の表記を文字列に変換できます。ICUによる変換は時間があれば、サンプルを作成したいと思います。
 +
 +
=='''文字列の抽出'''==
 +
文字列のコピーでコピーする文字数を限定する関数***ncpy系の関数がありましたので、前方抽出はできまるようになったと思います。他にもtokenを使ったり、正規表現を使う事でも抽出ができました。これらの文字の位置を示す関数と、この他にも存在する文字の位置に関する関数を活用することで、もっと他の抽出方法を考えることもできます。前方から何文字目~n文字。前方のnバイト目に目的の文字開始位置があれば、そこからn文字、前方のnバイト目に目的の文字開始位置があって、次のmバイト目に終端位置があって、その間にあるn文字を抽出といった具合です。これらはマルチバイト文字がおさめられた文字列変数ではバイト数と文字数が一致しないことから慎重に処理する必要があります。またワイド文字も2バイト固定のように感じてしまいますが、実際は4バイトの文字である可能性も0ではないので、きちんと文字数とバイト数を計算して、開始位置に文字型ポインターを格納したりする必要があります。配列によって決まった長さの実体のある文字列で終端に\0が入っているような構造の先頭を指し示すポインタと、そのポインタの型と同じだけど実体は持たないポインタの変数を利用して、実体を持たないポインタ変数が、文字の抽出開始位置を指し示すようにすること、そこらからコピーする文字数を正確に数えることがポイントになります。ポイントというとポインタと紛らわしいので、ミソになりますとでも言った方がいいのかもしれません。ここで紹介する抽出と、これまでに紹介した正規表現やtokenを活用すると更に操作の幅が広がります。
 +
 +
  
 
<!--
 
<!--

2014年10月16日 (木) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス