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

Добавить в строковый класс функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Рекурсия, квадратные корни. http://www.cyberforum.ru/cpp-beginners/thread143808.html
Здравствуйте, очень нужна помощь с задачей на рекурсию "Написать рекурсивную функцию и её нерекурсивный аналог, произвести измерение времени работы написанных функций при разных значениях" А вычислить нужно вот такое выражение sqrt(6+2(sqrt(7+3(sqrt(8+4(sqrt(9+... и так далее. Саму тему рекурсия я вроде бы и понял, функция которая вызывает сама себя и т.д... но вот с этим выражением не могу...
C++ Циклические алгоритмы. Управление циклами. Организовать процесс угадывания числа: компьютер генерирует случайное число (1…1000), пользователь пытается его угадать за фиксированное число попыток (10). Компьютер должен выводить ответ на каждое число пользователя, говорящий, с какой стороны (большей или меньшей) было названо число. В случае, если пользователь угадал за отведенное число попыток, выйти из процесса угадывания. Помагите... http://www.cyberforum.ru/cpp-beginners/thread143785.html
C++ Граф-карта
Добрый день. Не знаю, люда надо писать или нет. Показалось что сюда. Задача: Дано: список точек и описание с какими точками они соединены в каких направленияю. Требуется нарисовать граф ("карту"). Пример: Номер точки лево право вверх вниз
люди я на зачёте C++
Ввести три цифры найти среди них минимальную, две оставшиеся через пробел вывести в текстовый файл . я сделал но не вывел в файл помогите пожалуйста #include<iostream.h> #include<stdlib.h> #include<fstream.h> #include<string.h> class Three { int n; int *p;
C++ где можно бесплатно и без регистрации скачать фильмы на английском с рус. субтитрами http://www.cyberforum.ru/cpp-beginners/thread143742.html
надо для учебы
C++ Циклы и линейные массивы Найдите все трехзначные числа, которые можно представить разностью между квадратом числа, образованного первыми двумя цифрами и квадратом третьей цифры. В линейном целочисленном массиве посчитать число смен знака между соседними элементами. Помагите написать код на C++ Заранее благодарен подробнее

Показать сообщение отдельно
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
10.06.2010, 16:14     Добавить в строковый класс функцию
Добавить в строковый класс функцию, которая создает строку,
содержащую пересечение двух строк, то есть общие символы для двух строк.
Например, результатом пересечения строк "sdqcg" "rgfas34" будет строка "sg".
Для реализации функции перегрузить оператор * (бинарное умножение).
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
#include<iostream>
using namespace std;
class String
{
    char *str1;
    char *str3;
    int len;    
public:
    String(){};
    ~String()
    {
        delete [] str1;
        delete [] str3;
    }
    void Inps1();
    String& operator *(String &N);
    String& operator =(String &N);
    void Showrez();
 
};
void String::Inps1()
{
    char a[256];
    gets(a);
    len=strlen(a)+1;
    str1 = new char[len];
    strcpy(str1,a);
}
String& String:: operator *(String &N)
{
    int tem=1;
    len=strlen(str1)+1;
    N.len=strlen(N.str1)+1;
    for(int i=0;i<len;i++)
    {
        for(int j=0;j<N.len;j++)
        {
            if(str1[i]==N.str1[i])
                tem++;
        }
    }
    str3 = new char[tem];
    for(int i=0;i<len;i++)
    {
        for(int j=0;j<N.len;j++)
        {
            if(str1[i]==N.str1[j])
                strncat(str3,str1[i],1);
        }
    }
    return *this;
}
String& String:: operator =(String &N)
{
    strcpy(str1,N.str1);
    strcpy(str3,N.str3);
    len=N.len;
    return *this;
}
void String::Showrez()
{
    cout<<"Результат умножения двух строк: "<<str3<<endl;
}
void main()
{
    setlocale(LC_CTYPE,"Rus");
    String A,B,C;
    cout<<"Введите первую строку\n";
    A.Inps1();
    cout<<"Введите вторую строку\n";
    B.Inps1();
    C=A*B;
    C.Showrez();
    cout<<endl;
}
Что за ошибка, помогите пожалуйста:
error C2664: strncat: невозможно преобразовать параметр 2 из 'char' в 'const char *'
Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
Если прописать strncat(str3,&str1[i],1); то ошибок нет, но вот работа программы:
ввожу 1ю строку, ввожу 2ю, когда дело доходит до умножения программа виснет и выдает ошибку.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru