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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dan_strong
6 / 6 / 0
Регистрация: 28.12.2010
Сообщений: 113
#1

небольшой вопрос про совмещение строк - C++

21.01.2011, 21:41. Просмотров 726. Ответов 5
Метки нет (Все метки)

всем приятного времени суток))сразу извиняюсь если тема не в том разделе вот назрела задачка....помогите разобраться..
в общем: нам даны 3 строки символьного вида s1, s2 и s3. s1 и s2 мы вводим, а s3 пустая. и надо чтобы создалась новая строка в s3 путем совмещения последних n букв первой строки и первых n букв второй строки, если эти буквы совпадают! то есть, если у нас строки : корова и вагон, то результатом должна быть строка коровагон! а если совпадений нет, то записывается только первая строка.во как... надо функцию вида void A(char *s1, char *s2, char *s3).
заранее очень благодарен))
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2011, 21:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос небольшой вопрос про совмещение строк (C++):

Небольшой вопрос про наследование. - C++
Как понять Circle (int x, int y, int r, TColor p, TColor b) : cx (x), cy (y), rad (r), Shape (p, b) {} строчку понял что это...

небольшой вопрос..... - C++
подскажите,пожалуйста,что в этой записи обозначает &(амперсант) перед переменными? int dd, mm, yy; fscanf(Query,"%d.%d.%d", &dd, &mm,...

Совмещение строк, удаление файла. - C++
нужно объединить 2 строки,содержащие путь к директории и имя файла , затем по результату объединения удалить файл StringCbCatNA...

небольшой вопрос по структурам - C++
Плиз, подскажите как присвоить значение переменной(index) элементу массива структуры(avto.chet). Вроде бы ерунда, а не получается.

Небольшой вопрос по массивам - C++
В общем столкнулся с одной проблемой. Ведь в массивах все элементы начинаются с 0, то когда я пишу какую-нить прогу для решения какой-либо...

Небольшой вопрос от нуба в C++ - C++
Есть задача: в одномерном массиве найти номер максимального элемента, сосчитать произведение между первым и вторым нулями, и перестроить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
21.01.2011, 23:58 #2
спасибо за задачку )
Мой сонный мозг выдумал следующее:

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
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
char *append_char ( const char *s, const char c )
{
    std::size_t len = std::strlen ( s );
    char *ret = new char[len + 2];
 
    std::strcpy ( ret, s );
    ret[len] = c;
    ret[len + 1] = '\0';
 
    return ret;
}
 
void MyFunc(char *s1, char *s2)
{
    unsigned int same=0;
    bool fooFlag=true;
    char *s3;
    s3 = s1;
    for (unsigned i =0; i < strlen(s2); ++i)
    {
        for (unsigned j = strlen(s1); j > 0; --j)
        {
            if (s1[j]==s2[i])
            {
                same = strlen(s1)-j;
                for (unsigned g = j; g < strlen(s1); ++g)
                {
                    if (!fooFlag)
                        break;
                    for (unsigned h=0; h < strlen(s2); ++h)
                    {
                        if (s1[g]!=s2[h])
                        {
                            if (!fooFlag)
                                break;
                            for (unsigned o=same; o < strlen(s2); ++o)
                            {
                                s3 = append_char(s3,s2[o]);
                                cout << s3 << endl;
                            }
                            fooFlag=false;
                        }
                    }
                }
            }
        }
    }
    system("pause");
}
 
int main ()
{
    char s1[]="qwertyuiopasdfghjk",s2[]="wertyuiopasdfghjklm";
    MyFunc(s1, s2);
}
На упрощение не копал, вероятно можно чтото и убрать, но я изначально готовил себя к массе For
1
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
22.01.2011, 00:03 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<cstdlib>
using namespace std;
 
void f(char* a, char* b){
    string s(a), s1(b);
    for(auto it=s.begin(); it!=s.end(); ++it){
        if(equal(it, s.end(), s1.begin())){
            s.erase(it, s.end());
            cout<<s<<s1;
            exit(0);
        }
    }
    cout<<s;
}
 
int main(){
    char s[50], s1[50];
    cin.getline(s, sizeof(s));
    cin.getline(s1, sizeof(s1));
    f(s, s1);
}
1
dan_strong
6 / 6 / 0
Регистрация: 28.12.2010
Сообщений: 113
22.01.2011, 00:24  [ТС] #4
ого...спасибо)) буду щас разбираться))
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
22.01.2011, 00:30 #5
Хм, моя прога работает для правильных )) Щас погонял её на заведомо неправильные входные данные - несет ересь. :\
0
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
22.01.2011, 01:09 #6
вот с тремя указателями
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<cstring>
using namespace std;
 
void f(char* a, char* b, char* c){
    string s(a), s1(b);
    for(auto it=s.begin(); it!=s.end(); ++it){
        if(equal(it, s.end(), s1.begin())){
            s.erase(it, s.end());
            s+=s1;
            break;
        }
    }
    strcpy(c, s.c_str());
}
 
int main(){
    char s[50], s1[50], s2[100];
    cin.getline(s, sizeof(s));
    cin.getline(s1, sizeof(s1));
    f(s, s1, s2);
    cout<<s2;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2011, 01:09
Привет! Вот еще темы с ответами:

Небольшой вопрос по заполнению структуры - C++
В первой строке ошибка, пропущена точка с запятой.. Поправте, как правильно заполнить Zapravki_AZS.AZS = {{ &quot;Lukoil&quot;; ...

Работа с указателями(небольшой вопрос насчет преобразований) - C++
*((uint*)space)=SIGNATURE; space+=sizeof(uint); Как записать в одну строчку ? *(((uint*)space)++)=SIGNATURE; так не...

Вопрос про ф-ию mul - C++
Расскажите пожалуйста про ф-ию mul, перегружаемую в классе. Что она делает?

Вопрос про std:: - C++
std::cout &lt;&lt; &quot;Hello, world!&quot; &lt;&lt; std::endl; а можно cout &lt;&lt; &quot;Hello, world!&quot; &lt;&lt;endl; std пространство имен... где про это...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.01.2011, 01:09
Ответ Создать тему
Опции темы

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