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

strdup(), strcpy() - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Debert
0 / 0 / 0
Регистрация: 19.12.2010
Сообщений: 31
28.12.2010, 21:47     strdup(), strcpy() #1
Помогите написать свою ф-ю реализующую те же действия, что и ф-и strdup() , strcpy()
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2010, 21:47     strdup(), strcpy()
Посмотрите здесь:

strcpy C++
C++ свой strcpy()
strcpy C++
C++ strcpy()
Работа функции strdup C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
28.12.2010, 22:37     strdup(), strcpy() #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
char* myStrcpy(char* dest, const char* src)
{
    char* pDest = dest;
    while( (*dest++ = *src++) );
    return pDest;
}
 
char* MyStrdup(const char* src)
{
    char* pDest = (char*)malloc(sizeof(char) * strlen(src)+1);
    return myStrcpy(pDest, src);
}
Debert
0 / 0 / 0
Регистрация: 19.12.2010
Сообщений: 31
29.12.2010, 01:26  [ТС]     strdup(), strcpy() #3
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
char* myStrcpy(char* dest, const char* src)
{
    char* pDest = dest;
    while( (*dest++ = *src++) );
    return pDest;
}
 
char* MyStrdup(const char* src)
{
    char* pDest = (char*)malloc(sizeof(char) * strlen(src)+1);
    return myStrcpy(pDest, src);
}
Если можно, комментарии, пожалуйста

Добавлено через 4 минуты
и почему return myStrcpy(pDest, src); ?

мне нужно 2 реализации для ф-й отдельно. если я правильно понял здесь две вместе. а мне нужно просто по отдельности, это как два варианта я дал
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
29.12.2010, 01:38     strdup(), strcpy() #4
C++
1
2
3
4
5
6
7
char* MyStrdup(const char* src)
{
    char* pDest = (char*)malloc(sizeof(char) * strlen(src)+1);
    char* dest = pDest;
    while( (*dest++ = *src++) );
    return pDest;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
29.12.2010, 02:58     strdup(), strcpy() #5
Цитата Сообщение от Debert Посмотреть сообщение
мне нужно 2 реализации для ф-й отдельно. если я правильно понял здесь две вместе. а мне нужно просто по отдельности
Что просили, то и получили. Две функции, реализующие действие strcpy() и strdup(), что не так-то? То, что вторая функция первую использует? Ну вставьте вместо вызова функции её тело и будет две независимых функции...
Вот ещё для разнообразия (в прочем strdup() так не правильно делать. Если malloc() не отработает - программа грохнется...)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char * mystrcpy(char * dst, const char * src) {
    if ( *dst = *src )
        mystrcpy(dst + 1, src + 1);
    return dst;
}
 
char * madstrdup(const char * s) { return mystrcpy(malloc(strlen(s) + 1), s); }
 
int main(void){
    char * p;
    printf("%s\n", ( p = madstrdup("Hello, world!") ) );
    free(p);
    return 0;
}
Yandex
Объявления
29.12.2010, 02:58     strdup(), strcpy()
Ответ Создать тему
Опции темы

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