Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
1

Даны две строки. Удалить в первой строке первое вхождение второй строки

24.12.2018, 18:27. Просмотров 1120. Ответов 17

Посмотрите пж ребят и напишите , правильно ли я написал.
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
int main()
 
{
    
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
char *str = new char[50];
char *str2 = new char[50];
int length, i, j, length_2;
cout << "Input string_1: "; cin.getline(str, 50); cout << endl;
cout << "Input string_2: "; cin.getline(str2, 50); cout << endl;
length = strlen(str);
length_2 = strlen(str2);
for ( i = 0; i < length; i++)
{
    for ( j = 0; j < length_2; j++)
    {
        if (str[i] == str2[j])
        {
            for (int q = i; q < length; q++)
            {
                str[q] = str[q + 1];
            }
            length--;
            j--;
            i--;
        }
    }
}
for ( i = 0; i < length; i++)
{
    cout << str[i];
}
cout << "\n\n";
delete[] str2;
str2 = nullptr;
delete[] str;
str = nullptr;
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2018, 18:27
Ответы с готовыми решениями:

Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождение строки S2 на S3
Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождение строки S2 на S3.

Заданы 2 строки; приписать первое слово второй строки к первой строке
Заданы 2 строки, состоящие из слов, разделенных пробелами. Приписать первое слово второй строки к...

Даны две строки. Получить строку, в которой чередуются слова первой и второй строки
Даны две строки. Получить строку, в которой чередуются слова первой и второй строки. Если в одной...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции, с которой вторая строка содержится в первой.
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции, с...

17
alkl
117 / 92 / 35
Регистрация: 18.12.2012
Сообщений: 637
Завершенные тесты: 1
24.12.2018, 20:10 2
А работает как нужно ?
0
aassii
23 / 23 / 13
Регистрация: 12.10.2018
Сообщений: 240
24.12.2018, 20:12 3
Ivan _pupkin, а разве так не проще сделать?))
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main()
{
string s = "Hello thisis world!"; 
string t = "this";
cout<<s<<endl;
cout<<t<<endl;
int i = s.find(t);
s.erase(i,t.size());
cout<<endl<<s<<endl;
return 0;
}
1
analogov net
190 / 136 / 71
Регистрация: 17.11.2018
Сообщений: 378
24.12.2018, 20:32 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{
    char   str[50]; 
    char   str2[50];
    char * p;
 
    cout << "Input string_1: ";
    cin.getline( str, 50 ); 
    cout << "Input string_2: ";
    cin.getline( str2, 50 ); 
 
    p  = strstr( str, str2 );  
    strcpy( p, p + strlen( str2 ) );
 
    cout << str << endl;
 
    return 0;
}
0
24.12.2018, 20:32
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
24.12.2018, 20:42  [ТС] 5
aassii,
Я ещё не изучал тип данных string, так что не знаю
0
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
24.12.2018, 20:47  [ТС] 6
analogov net,
Почему у меня выдаёт ошибку на функцию, хоть я её и изменил?
0
Миниатюры
Даны две строки. Удалить в первой строке первое вхождение второй строки  
analogov net
190 / 136 / 71
Регистрация: 17.11.2018
Сообщений: 378
24.12.2018, 21:05 7
Ivan _pupkin, добавь сверху
C++
1
#define _CRT_SECURE_NO_WARNINGS
и юзай обычную ф-цию.
0
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
24.12.2018, 21:18  [ТС] 8
analogov net,
Всё равно не работает.
0
Миниатюры
Даны две строки. Удалить в первой строке первое вхождение второй строки  
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
24.12.2018, 21:19  [ТС] 9
alkl,
Если честно , я условие не до конца понял. Что значит вхождение в строку?
0
aassii
23 / 23 / 13
Регистрация: 12.10.2018
Сообщений: 240
24.12.2018, 21:25 10
Ivan _pupkin, это значит что последовательный набор символов из второй строки можно найти в первой строке))
Например:
string s = "Hello thisis world!";
string t = "this";
Соображай))
0
analogov net
190 / 136 / 71
Регистрация: 17.11.2018
Сообщений: 378
24.12.2018, 21:55 11
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
Всё равно не работает.
Ivan _pupkin, открой файл stdafx.h и добавь в него.
Как открыть знаешь?

Добавлено через 10 минут
так попробуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main()
{
    char   str[50]; 
    char   str2[50];
    char * p;
 
    cout << "Input string_1: ";
    cin.getline( str, 50 ); 
    cout << "Input string_2: ";
    cin.getline( str2, 50 );
 
    int len = strlen( str2 );
 
    p  = strstr( str, str2 );  
    strcpy_s( p, len, p + len );
 
    cout << str << endl;
 
    return 0;
}
0
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
24.12.2018, 23:43  [ТС] 12
aassii,
Что значит последний набор символов?
0
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
24.12.2018, 23:51  [ТС] 13
analogov net,
Почему когда я пишу Hello вылазит ошибка, но когда я пишу world! , всё работает правильно?
0
Миниатюры
Даны две строки. Удалить в первой строке первое вхождение второй строки   Даны две строки. Удалить в первой строке первое вхождение второй строки  
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
24.12.2018, 23:52  [ТС] 14
Цитата Сообщение от analogov net Посмотреть сообщение
Ivan _pupkin, открой файл stdafx.h и добавь в него.
Где находится этот файл , и что нужно в него добавить?
0
analogov net
190 / 136 / 71
Регистрация: 17.11.2018
Сообщений: 378
25.12.2018, 00:30 15
Лучший ответ Сообщение было отмечено Ivan _pupkin как решение

Решение

Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
Почему когда я пишу Hello вылазит ошибка, но когда я пишу world! , всё работает правильно?
Потому что была ошибка в коде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main()
{
    char   str[50]; 
    char   str2[50];
    char * p;
 
    cout << "Input string_1: ";
    cin.getline( str, 50 ); 
    cout << "Input string_2: ";
    cin.getline( str2, 50 );
 
    int len  = strlen( str );
    int len2 = strlen( str2 );
 
    p  = strstr( str, str2 );  
    strcpy_s( p, len, p + len2 );
 
    cout << str << endl;
 
    return 0;
}
1
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
25.12.2018, 02:00  [ТС] 16
analogov net,
Всё работает спасибо, только объясните пожалуйста , для чего в коде нужен указатель " р " ?
0
alkl
117 / 92 / 35
Регистрация: 18.12.2012
Сообщений: 637
Завершенные тесты: 1
25.12.2018, 02:13 17
Ivan _pupkin, чтобы знать, где находится вхождение подстроки.
strstr возвращает указатель на первое вхождение подстроки в строку. Т.е., своими словами, - место в строке, где нашлась подстрока.
2
Ivan _pupkin
2 / 2 / 0
Регистрация: 17.12.2018
Сообщений: 175
25.12.2018, 02:39  [ТС] 18
alkl, Спасибо.
0
25.12.2018, 02:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2018, 02:39

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки...

Удалить из первой строки все символы, содержащиеся во второй строке
Ввести 2 символьные строки. Удалить из первой строки все символы, содержащиеся во второй строке....

Удалить из первой строки все символы, содержащиеся во второй строке
Ввести 2 символьные строки. Удалить из первой строки все символы, содержащиеся во второй строке....


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

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