一部ライブラリ関数の実装

925 ワード

1.シミュレーション実装strncat
//strcatと変わらず、追加されたブロックの大きさが異なるだけで、strncat n 容量
char *my_strncat(char * dst, const char *src,
int count){char *p = dst;while (*dst){dst++;}while(count--)/数countでサイクルを制御する回数*dst+=*src+;}*dst = '\0';return p;}
2.シミュレーションによるstrncmpの実現
//strcmpと変わらず、比較するブロックの大きさが違うだけで、strncmpはnバイトの内容を後ろに比較するだけです
int my_strncmp(const char *src, const char
*dst, int count){int ret = 0;while (!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *src && *dst)
{while (count--){src++;dst++;}if (!count)break;
}if (ret > 0)ret = 1;else if (ret<0)ret = -1;return ret;
}
3.シミュレーション実装strncpy
//strcpyと変わらないが、コピーのブロックサイズが異なるだけで、strncpyはnバイトの内容を後ろにコピーするだけだ
char *my_strncpy(char * dst, const char *src, int count){char *p = dst;while (count--){*dst++ = *src++;}*dst = '\0';return p;
}