C99に対応した標準Cライブラリの実装レポートを行っていきます。

プロフィール 

Author:高木信尚

ホームページ
ブログ

最近の記事 

最近のコメント 

最近のトラックバック 

月別アーカイブ 

カテゴリー 

ブロとも申請フォーム 

この人とブロともになる

ホーム 全記事一覧 << 前の記事 次の記事 >>

 

2008/10/07 11:49|

 

strncmp関数も、strncat関数と同様、素直な仕様かと思います。strcmp関数に文字数制限の判定だけを追加すれば実現できそうです。それでは、実装です。

#include <stddef.h>

int strncmp(const char *s1,
            const char *s2, size_t n)
{
  register const unsigned char *ss1, *ss2, *t;
  for (ss1 = (const unsigned char*)s1,
      ss2 = (const unsigned char*)s2,
      t = ss1 + n;
      ss1 != t && *ss1 == *ss2 && *ss1 != '\0';
      ss1++, ss2++)
    ;
  return *ss1 - *ss2;
}

これも、strcmp関数と見比べていただければ、動作の違いがよくわかるかと思います。

2月から長々と取り組んできた<string.h>ヘッダの内容ですが、これで一通り終わり(のはず)です。次回からは、シグナル処理を扱う予定です。
2006/05/05 11:14|文字列操作TB:0CM:0

コメント
コメントの投稿

管理者にだけ表示を許可する


トラックバック
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/51-f21f5f4e

ホーム 全記事一覧 << 前の記事 次の記事 >>

ブログ内検索 

お勧め書籍 

RSSフィード 

リンク 

このブログをリンクに追加する

Powered By FC2ブログ 

Powered By FC2ブログ
ブログやるならFC2ブログ

Copyright(C) 2006 TAKAGI Nobuhisa All rights reserved.
Powered by FC2ブログ. 無料ホームページ アフィリエイト レンタルサーバー FC2ブログ 一戸建て template designed by 遥かなるわらしべ長者への挑戦.