|
|
|
| 2008/10/07 11:42||▲
|
|
|
文字列の連結を行うstrcat関数は、strlen関数とstrcpy関数を合わせたような機能を持っています。つまり意味的には、
char *strcat(char * restrict s1, const char * restrict s2) { strcpy(s1 + strlen(s1), s2); return s1; // 間違っていたので少し直しました }
ということになるわけです。実装もこれと大差はありませんが、strlenやstrcpyといった関数を呼び出すのではなく、直接展開しているだけです。したがって、
#include <stddef.h>
char *strcat(char * __restrict__ s1, const char * __restrict__ s2) { register char *ss; for (ss = s1; *ss != '\0'; ss++) ; for (; (*ss = *s2) != '\0'; ss++, s2++) ; return s1; }
とすれば完成です。
ところで、strcat という関数名ですが、STRing ConcAtenaTe の意味だとか。かなり無理があるような気がするのは私だけでしょうか。
|
| 2006/02/27 22:17|文字列操作|TB:0|CM:0|▲
|
|
|
コメント
|
|
コメントの投稿
|
|
|
|
|
トラックバック
|
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/32-1e5aa33b
|
|
|
|
|
ホーム
全記事一覧
<< 前の記事
次の記事 >>
|