С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 73

Функция возвращающая индекс первого вхождения символа из строки str2 в строку str1

14.06.2020, 18:03. Показов 5969. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать и протестировать функцию STRP(str1, str2), который возвращает индекс первого вхождения символа из строки str2 в строку str1. Если ни один символ строки str2 не входит в строку str1, то возвратить -1.
Не понимаю именно суть задания,буду очень признателен объяснение всего задания или коду.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.06.2020, 18:03
Ответы с готовыми решениями:

Написать функцию primer(str1, str2) удаляющую из строки str1 последнее вхождение строки str2. Функция возвращает указатель str1
помогите пожалуйста

Программа копирует символы из строки str1 в строку str2 после первого вхождения буквы "a".
Пожалуйста помогите еще парочку задачек.:( 1 Найти ошибки в программе,объяснить их и исправить.Программа копирует символы из строки str1...

Написать функцию replace(str1, str2,str3), заменяющая в строке str1 все вхождения строки str2 строкой str3
Написать функцию replace(str1, str2,str3), заменяющая в строке str1 все вхождения строки str2 строкой str3.Функция возвращает указатель str1

16
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
14.06.2020, 18:19
Цитата Сообщение от peleha Посмотреть сообщение
Не понимаю именно суть задания,буду очень признателен объяснение всего задания или коду.
у тебя есть два массива, нужно каждый элемент второго массива сравнить с каждым элементом первого, при первом равенстве двух элементов возвращаешь индекс.
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 73
14.06.2020, 18:51  [ТС]
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
#include <iostream>
#include <cstring>
using namespace std;
 
 
char* strp(char* str1, char* str2)
{
 
    unsigned int len1 = strlen(str1);
    unsigned int len2 = strlen(str2);
 
    for(unsigned int i = 0; i < len1; ++i)
    {
 
        for(int j = 0; j < len2; ++j)
        {
            if(str1[i]==str2[j])
            {
 
                return &str1[i];
            }
        }
    }
 
    return -1;
}
int main(int argc, char** argv)
{
    char* str1 = new char[256];
    char* str2 = new char[256];
 
    cin.getline(str1, 256);
    cin.getline(str2, 256);
 
    cout << str1 << "\t" << str2 << endl;
 
    str1 = strp(str1, str2);
 
    if(str1)
    {
        cout << str1 << endl;
    }
    else
    {
        cout << [i] << endl;
    }
 
 
    system("pause");
    return 0;
}
Не могли бы вы подсказать,что делаю не так? Понимаю,что неправильно пишу return -1,и вывод cout<<[i] тоже что-то не то.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
14.06.2020, 19:10
Лучший ответ Сообщение было отмечено peleha как решение

Решение

Цитата Сообщение от peleha Посмотреть сообщение
Не могли бы вы подсказать,что делаю не так? Понимаю,что неправильно пишу return -1,и вывод cout<<[i] тоже что-то не то.
у тебя наверное задание исправить код, что бы работал , вот не парься
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
#include <iostream>
#include <cstring>
using namespace std;
 
 
// char* strp(char* str1, char* str2)
int strp(char* str1, char* str2)
{
 
    unsigned int len1 = strlen(str1);
    unsigned int len2 = strlen(str2);
 
    for(unsigned int i = 0; i < len1; ++i)
    {
 
        // for(int j = 0; j < len2; ++j)
        for(unsigned int j = 0; j < len2; ++j)
        {
            if(str1[i]==str2[j])
            {
 
                // return &str1[i];
                return j;
            }
        }
    }
 
    return -1;
}
int main(int argc, char** argv)
{
    char* str1 = new char[256];
    char* str2 = new char[256];
 
    cin.getline(str1, 256);
    cin.getline(str2, 256);
 
    cout << str1 << "\t" << str2 << endl;
 
    // str1 = strp(str1, str2);
 
    /*if(str1)
    {
        cout << str1 << endl;
    }
    else
    {
        cout << [i] << endl;
    }*/
 
    std::cout << strp(str1, str2) << std::endl;
 
    system("pause");
    return 0;
}
1
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
14.06.2020, 19:48
вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>     
 
using namespace std;
 
const int func(string where, string what) {
    int n=-1;
    n=where.find(what);
    return n;
}
 
int main () {
    string s1 = "This is a string";     //where
    string s2 = "is";   //what
    int a=func(s1, s2);
    printf("%d\n", a);  
    return 0;
}
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 73
14.06.2020, 19:49  [ТС]
Это получается серым вы выделили,чем нужны заменить строчки которые ниже?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
14.06.2020, 19:56
Цитата Сообщение от peleha Посмотреть сообщение
Это получается серым вы выделили,
кто мы? я тут один
Цитата Сообщение от peleha Посмотреть сообщение
Это получается серым вы выделили,чем нужны заменить строчки которые ниже?
ага, и красным
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 73
14.06.2020, 19:59  [ТС]
Если так,то компилятор все ровно ругается на return - 1 и cout [i],может я просто не так понял,что именно поменять нужно.
Можно измененный код?

Добавлено через 20 секунд
Если так,то компилятор все ровно ругается на return - 1 и cout [i],может я просто не так понял,что именно поменять нужно.
Можно измененный код?

Добавлено через 2 минуты
Ну человек незнакомый,все ровно обращаться лучше на вы)
0
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
14.06.2020, 20:01
Цитата Сообщение от JeyCi Посмотреть сообщение
const int ...
int a=func(s1, s2);
в моём коде поправить -
или в вызове и в функции - int...
или const int ...
-- чтобы и там и там было одинаково
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
14.06.2020, 20:01
Цитата Сообщение от JeyCi Посмотреть сообщение
const int func
const не надо так как функция rvalue возвращает, бесполезно
1
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 73
14.06.2020, 20:03  [ТС]
я про ваш код,который вы отправили,можно готовый,я изменяю как у вас написано,все ровно ругается,может я что-то не так меняю
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
14.06.2020, 20:05
Цитата Сообщение от peleha Посмотреть сообщение
я про ваш код,который вы отправили,можно готовый,я изменяю как у вас написано,все ровно ругается,может я что-то не так меняю
скопируй его как есть все, он работает
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 73
14.06.2020, 20:18  [ТС]
Получается я должен ввести символы или именно какой должен быть ввод? Я вроде разобрался,а вроде и нет. С -1 точно понял,а вот именно вывод не понял,когда что-то повторяется,он выводит индекс того чего повторяется? Но в задании же вроде сказано,что надо возвращать что-то или я не так понимаю?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
14.06.2020, 20:21
peleha, первую строку вводишь, жмешь пробел, вторую строку вводишь жмешь пробел, видишь результат и еще раз перечитываешь задание. попробуй с одного символа потом двух и тд.
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 73
14.06.2020, 20:22  [ТС]
Могу ли я просто протестировать с цифрами или нужно именно какие то символы?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
14.06.2020, 20:23
любые числа или буквы
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 73
14.06.2020, 20:24  [ТС]
Спасибо большое за подробное объяснение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.06.2020, 20:24
Помогаю со студенческими работами здесь

Заменить все вхождения str1 на str2 (str1 вводится из файла, а str2 - с клавиатуры)
заменить все вхождения подстроки str1 на подстроку str2; строка str1 вводится из файла, а строка str2 с клавиатуры {Ha C++}

функция копирует строку str2 в буфер, который адресуется через str1. Функция возвращает указатель на первую строчку str1
char * mystrcpy (char * str1, const char * str2) - функция копирует строку str2 в буфер, который адресуется через str1. Функция возвращает...

Функция, возвращающая номер самого правого вхождения заданного символа во введенную строку
Нужна помощь в составлении программы: возвращающую номер самого правого вхождения заданного символа во введенную строку. Если символ не...

Разработать программу, которая для заданной строки S: заменяет все вхождения подстроки str1 на подстроку str2
Разработать программу, которая для заданной строки S: заменяет все вхождения подстроки str1 на подстроку str2 (при этом str1 может являться...

Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1
Напишите функцию rightposition, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru