С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Написать собственные аналоги функций strlen, strcmp, strchr, strcpy, strcat (дописать и исправить ошибки) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Одинаковые числа в двух последовательностях http://www.cyberforum.ru/cpp-beginners/thread637402.html
Даны две последовательности целых чисел: а1, …, аn; b1, …, bm. Напечатать различные числа, встречающиеся в обеих последовательностях.
C++ Количество цифр в записи числа Дано натуральное число n. Выяснить, сколько различных цифр встречается в его десятичной записи. http://www.cyberforum.ru/cpp-beginners/thread637401.html
C++ Найти наибольшее расстояние (массив)
Даны координаты n точек на плоскости: x1,y1; x1,y2; …, xn,yn . Найти номера двух точек, расстояние между которыми наибольшее. Считать, что такая пара точек единственная.
C++ Поменять местами элементы в массиве
Даны действительные числа х1, …, хn (все числа попарно различны). Поменять местами наибольший и наименьший элементы.
C++ Выбрать наибольший и наименьший элементы в матрице http://www.cyberforum.ru/cpp-beginners/thread637382.html
Помогите пожалуйста!!!! Дана вещественная матрица размером m x n. все элементы которой различны. В каждой строке выберите элемент с наименьшим значением, затем среди этих чисел выберите наибольшее....
C++ Получить цвет фона экрана консольного окна (можно и методами WinAPI) Привет. Как получить цвет (фона экрана) консольного окна? Можно и методами WinAPI. С меня печенька :) подробнее

Показать сообщение отдельно
KostyaKulakov
Заблокирован

Написать собственные аналоги функций strlen, strcmp, strchr, strcpy, strcat (дописать и исправить ошибки) - C++

14.08.2012, 10:15. Просмотров 3245. Ответов 7
Метки (Все метки)

вот задание: Написать собственные аналоги функций strlen, strcmp, strchr, strcpy,
strcat из стандартной библиотеки cstring (string.h).
сделал код. но запарился с strcat. помогите

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <cstring>
using namespace std;
 
void cpy(char kostya[], char kulakov[], unsigned const int max);
void cat(char kostya[], char kulakov[], unsigned const int max);
void returntmp(char kostya[], char kulakov[], char tmpkostya[], char tmpkulakov[], unsigned const int max); // no bad :)
 
int main()
{
 
    unsigned const int max = 20;
 
    char kostya[max]  =  "kostya";
    char kulakov[max] = "kulakov";
 
    char tmpkostya[max];    // заносим наши олдовские массивы. иначе иза всех манипуляций они теряюца. 
    char tmpkulakov[max];   // заодно протестируем функцию ))
 
    cpy (tmpkostya, kostya, max);   // TEMP
    cpy (tmpkulakov, kulakov, max); // TEMP
 
    cout << "old kostya  : " << kostya << endl;
    cout << "old kulakov : "  << kulakov << endl;
 
    cpy(kostya, kulakov, max); //test strcmp
 
    cin.get();
 
    cout << "[strcpy] kostya  : " << kostya << endl;
    cout << "[strcpy] kulakov : "  << kulakov << endl;
 
    cin.get();
 
    returntmp (kostya, kulakov, tmpkostya, tmpkulakov, max);  //возрашаем всё на свои места //заодно тестирование функции cmp;
 
    cout << "[TMP - old] kostya  : " << kostya << endl;
    cout << "[TMP - old] kulakov : "  << kulakov << endl;
    
    cin.get();
 
    strcmp(kostya, kulakov);                                //что то попробывал так и не понял что она должна делать. вроде всё остаётся на своих местах
    
    cout << "[strcmp] kostya  : " << kostya << endl;
    cout << "[strcmp] kulakov : "  << kulakov << endl;
 
    cin.get();
 
    cat(kostya, kulakov, max);
 
    cout << "[strcat] kostya  : " << kostya << endl;
    cout << "[strcat] kulakov : "  << kulakov << endl;
 
}
 
void cpy(char kostya[], char kulakov[], unsigned const int max) //имена приведяны к примеру.
{
    for (int i=0; i < max; i++)
    {
        kostya[i] = kulakov[i];
    }
}
 
void returntmp(char kostya[], char kulakov[], char tmpkostya[], char tmpkulakov[], unsigned const int max)
{
    cpy (kostya, tmpkostya, max);   // TEMP
    cpy (kulakov, tmpkulakov, max); // TEMP
}
 
                                                   
void cat(char kostya[], char kulakov[], unsigned const int max)
{
    int save=0;
 
    for (int i=0; i < max; i++)
    {
        for (int k=0; kostya[k]; k++)
        {
        if(kostya[i])
        save++;    //вычисляем сколько букв и заносим в сейв.
        }
            kostya[save] = kulakov[i]; //от последней буквы прбавляем массив kulakov. но выходит ошибка почему? ((
    }
}
 
 
 
//strlen, strcmp, strchr, strcpy, strcat
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.