> Ты к сожалению этого не умеешь делать. Начать можно с банальных постулатов
>Выражайтесь как можно понятнее
> Разбивайте сложные выражения на части
> Учитывайте возможные побочные эффектыты K&R читал? От тамошних примеров у тя моск наверно раком встанет.
вот так выглядит функция простейшая strcpy()
char *strcpy(char *dest, const char *src)
{
char *tmp = dest; while ((*dest++ = *src++) != '\0')
return tmp;
}
а вот так уже strncpy()
char *strncpy(char *dest, const char *src, size_t count)
{
char *tmp = dest; while (count) {
if ((*tmp = *src) != 0)
src++;
tmp++;
count--;
}
return dest;
}
и чтоб совсем раком встало - strncat() и memmove()
char *strncat(char *dest, const char *src, size_t count)
{
char *tmp = dest; if (count) {
while (*dest)
dest++;
while ((*dest++ = *src++) != 0) {
if (--count == 0) {
*dest = '\0';
break;
}
}
}
return tmp;
}
void *memmove(void *dest, const void *src, size_t count)
{
char *tmp;
const char *s;
if (dest <= src) {
tmp = dest;
s = src;
while (count--)
*tmp++ = *s++;
} else {
tmp = dest;
tmp += count;
s = src;
s += count;
while (count--)
*--tmp = *--s;
}
return dest;
}
Уже чую запах разлагающегося трупа... :)