Форум программистов, компьютерный форум CyberForum.ru

Strncpy - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.86
DeeR
3 / 3 / 0
Регистрация: 11.04.2009
Сообщений: 32
25.05.2009, 06:04     Strncpy #1
Напишите пожауйста на С аналог функции Strncpy
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
EnzoMatrix
 Аватар для EnzoMatrix
120 / 120 / 4
Регистрация: 14.03.2009
Сообщений: 462
25.05.2009, 07:33     Strncpy #2
мо-моему это итак сишная функция, тока модуль стринг в некоторых компилерах надо подрубить
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
25.05.2009, 09:47     Strncpy #3
т.к. самому делать этот велосипед влом, вот от тех, кому не влом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
 * Apache's "replacement" for the strncpy() function. We roll our
 * own to implement these specific changes:
 *   (1) strncpy() doesn't always null terminate and we want it to.
 *   (2) strncpy() null fills, which is bogus, esp. when copy 8byte
 *       strings into 8k blocks.
 *   (3) Instead of returning the pointer to the beginning of
 *       the destination string, we return a pointer to the
 *       terminating '\0' to allow us to "check" for truncation
 *
 * apr_cpystrn() follows the same call structure as strncpy().
 */
 
APR_DECLARE(char *) apr_cpystrn(char *dst, const char *src, apr_size_t dst_size)
{
 
    char *d, *end;
 
    if (dst_size == 0) {
        return (dst);
    }
 
    d = dst;
    end = dst + dst_size - 1;
 
    for (; d < end; ++d, ++src) {
    if (!(*d = *src)) {
        return (d);
    }
    }
 
    *d = '\0';  /* always null terminate */
 
    return (d);
}
DeeR
3 / 3 / 0
Регистрация: 11.04.2009
Сообщений: 32
25.05.2009, 17:17  [ТС]     Strncpy #4
Можно, переделать этот код на С, а то некороые вещи не понятны.
Mecid
 Аватар для Mecid
678 / 227 / 4
Регистрация: 15.10.2007
Сообщений: 1,247
25.05.2009, 17:20     Strncpy #5
что не ясно то?
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16942 / 5347 / 329
Регистрация: 30.03.2009
Сообщений: 14,377
Записей в блоге: 26
25.05.2009, 17:31     Strncpy #6
В велосипеде в 3-м пункте написано, что ихняя реализация делает не так, по сравнению с правильной. Для правильной вместо "return d" нужно "return dst"
DeeR
3 / 3 / 0
Регистрация: 11.04.2009
Сообщений: 32
28.05.2009, 15:55  [ТС]     Strncpy #7
APR_DECLARE(char *) apr_cpystrn(char *dst, const char *src, apr_size_t dst_size)
как вот эту строку можно в С записать?
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16942 / 5347 / 329
Регистрация: 30.03.2009
Сообщений: 14,377
Записей в блоге: 26
28.05.2009, 16:03     Strncpy #8
"char * apr_cpystrn(char *dst, const char *src, apr_size_t dst_size)"
DeeR
3 / 3 / 0
Регистрация: 11.04.2009
Сообщений: 32
01.06.2009, 19:05  [ТС]     Strncpy #9
Может кто-нибудь написать программу, которая тестирует эту функцию на С?
YurA_280784
Заблокирован
11.06.2009, 09:21     Strncpy #10
Вах, дарагой зачэм куда-то ходыт, вот прототып)))))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char * __cdecl strncpy (
        char * dest,
        const char * source,
        size_t count
        )
{
        char *start = dest;
 
        while (count && (*dest++ = *source++))    /* copy string */
                count--;
 
        if (count)                              /* pad out with zeroes */
                while (--count)
                        *dest++ = '\0';
 
        return(start);
}
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16942 / 5347 / 329
Регистрация: 30.03.2009
Сообщений: 14,377
Записей в блоге: 26
11.06.2009, 10:13     Strncpy #11
Ему нужен не прототип и не реализация, а тест на эту функцию
YurA_280784
Заблокирован
11.06.2009, 13:34     Strncpy #12
Что значит тест?Как в программе юзать или что?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2009, 13:37     Strncpy
Еще ссылки по теме:

Напишите варианты библиотечных функций strncpy, strncat и strncmp C++
ошибка 4996 strncpy C++
Аналог strncpy и strncmp для типа string C++
Поведение функции strncpy C++
Как работает strncpy()? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16942 / 5347 / 329
Регистрация: 30.03.2009
Сообщений: 14,377
Записей в блоге: 26
11.06.2009, 13:37     Strncpy #13
Цитата Сообщение от YurA_280784 Посмотреть сообщение
Что значит тест?Как в программе юзать или что?
Пардон, я с другой темой перепутал
Yandex
Объявления
11.06.2009, 13:37     Strncpy
Ответ Создать тему
Опции темы

Текущее время: 08:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru