|
|
|
| 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:0|CM:0|▲
|
|
|
コメント
|
|
コメントの投稿
|
|
|
|
|
トラックバック
|
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/51-f21f5f4e
|
|
|
|
|
ホーム
全記事一覧
<< 前の記事
次の記事 >>
|