1 Востаннє редагувалося Parsifal (22.10.2018 14:01:40)

Тема: допоможіть(С++(стрічки))

ось завдання

Прихований текст

Написати програму, яка перевіряє чи деякий фрагмент є в стрічці;

ось код

Прихований текст
#include <iostream>
#include <conio.h>
using namespace std;
void main() {
    setlocale(LC_ALL, "ru");
    const int a = 100;
    char str1[a];
    cout << "Введiть стрiчку : ";
    gets_s(str1);
    const int b = 50;
    char str2[b];
    cout << "Введiть стрiчку : ";
    gets_s(str2);
    char str3 = *strstr(str1, str2);
    if (str3 != 0) {
        cout << "Деякий елемент є в стрiчцi \n";
    }
    if (str3 == 0) {
        cout << "Деякого елемента немає в стрiчцi \n";
    }
    system("pause");
}

коли знаходить фрагмент в стрічці то працює нормально а коли не знаходить то помилка під час виконаня, ось скрін незнаходження фрагменту
http://replace.org.ua/misc.php?action=pun_attachment&amp;item=1927&amp;download=0

Post's attachments

Без імені.png 70.74 kb, 32 downloads since 2018-10-22 

2

Re: допоможіть(С++(стрічки))

char str3 = *strstr(str1, str2);
str3 - це char (один символ), що дорівнює нульовому символу (*) результату роботи функції strstr. Функція strstr повертає вказівник на початок стрічки в іншій (тобто саме те, що вас просили зробити; дивно, що в умову не додали "не використовувати стандарті функції) або значення NULL. От нульовий символ зі стрічки за посиланням NULL ви і бачите.

Подякували: Parsifal, leofun012

3

Re: допоможіть(С++(стрічки))

Дякую Коало допомогло

4

Re: допоможіть(С++(стрічки))

koala написав:

дивно, що в умову не додали "не використовувати стандарті функції) або значення NULL

це в іншому завданні буде
Створити бібліотеку наступних функцій:
int mystrlen (const char * str); - Функція визначає довжину стрічки.
char * mystrcpy (char * str1, const char * str2); - Функція копіює всі символи з стрічки str2 в стрічку str1. Функція повертає вказівник на першу стрічку str1.
char * mystrcat (char * str1, const char * str2); - Функція приєднує стрічку str2 до стрічки str1. Функція повертає вказівник на першу стрічку str1.
char * mystrchr (char * str, char s); - Функція здійснює пошук символу s в стрічці str. Функція повертає вказівник на перше входження символу в стрічку, в іншому випадку 0.
char * mystrstr (char * str1, char * str2); - Функція здійснює пошук підстрічки str2 в стрічці str1. Функція повертає вказівник на перше входження підстрічки str2 в стрічку str1, в іншому випадку 0.
char * mystrrev (char * str); - Функція реверсує стрічку і повертає вказівник на нову стрічку.