Переписать код с С++ поиска строки - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите переделать пожалуйста
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
bool HasSubstring(const std::string& content, const std::string& target)
{
    return content.find(target) != std::string::npos;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    string S = "Hello, world";
    string S0 = "world";
    cout << "Введите исходную строку: ";
    cin >> S;
 
    cout << "Введите строку, которую ищем: ";
    cin >> S0;
 
    if (HasSubstring(S, S0))
        std::cout << "Результат: TRUE\n";
    else
        std::cout << "Результат: FALSE\n";
    system("pause");
    _getch();
}

Решение задачи: «Переписать код с С++ поиска строки»

textual
Листинг программы
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <locale.h>
int HasSubstring(const char *str, const char *substr)
{
    return (int)strstr(str, substr);
};
 
void main()
{
    char *S = malloc(80);//"Hello, world";
    char *S0 = malloc(80);// "world";
    setlocale(LC_ALL, "Russian");
    cputs("Введите исходную строку: ");
    cscanf("%s", S);
 
    cputs("\n\rВведите строку, которую ищем: ");
    cscanf("%s", S0);
 
    printf("\n\rРезультат: %s\n",  HasSubstring(S, S0) ? "TRUE" : "FALSE");
    _getch();
};

Объяснение кода листинга программы

  1. #include - подключает библиотеку string.h, которая содержит функции для работы со строками.
  2. #include - подключает библиотеку conio.h, которая содержит функции для работы с консолью.
  3. #include - подключает библиотеку stdio.h, которая содержит функции для работы с вводом/выводом.
  4. #include - подключает библиотеку locale.h, которая содержит функции для работы с локалью.
  5. int HasSubstring(const char str, const char substr) - функция поиска подстроки в строке. Возвращает индекс первого символа подстроки в строке или -1, если подстрока не найдена.
  6. void main() - точка входа в программу.
  7. *char S = malloc(80); //Hello, world;** - выделяет память под строку Hello, world.
  8. *char S0 = malloc(80); // world;** - выделяет память под строку world.
  9. setlocale(LC_ALL, Russian); - устанавливает русскую локаль.
  10. cputs(Введите исходную строку:); - выводит сообщение Введите исходную строку:.
  11. cscanf(%s, S); - считывает строку с помощью функции cscanf и сохраняет ее в переменной S.
  12. cputs(\n\rВведите строку, которую ищем:); - выводит сообщение Введите строку, которую ищем:.
  13. cscanf(%s, S0); - считывает строку с помощью функции cscanf и сохраняет ее в переменной S0.
  14. printf(\n\rРезультат: %s\n, HasSubstring(S, S0) ? TRUE : FALSE); - выводит результат поиска подстроки в строке.
  15. _getch(); - ожидает нажатия клавиши.
  16. free(S); - освобождает память, выделенную под строку S.
  17. free(S0); - освобождает память, выделенную под строку S0.
  18. Программа завершается.
  19. Возвращается 0.
  20. FALSE - подстрока не найдена.
  21. TRUE - подстрока найдена.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы