Переписать код с С++ поиска строки - 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();
};
Объяснение кода листинга программы
- #include
- подключает библиотеку string.h, которая содержит функции для работы со строками. - #include
- подключает библиотеку conio.h, которая содержит функции для работы с консолью. - #include
- подключает библиотеку stdio.h, которая содержит функции для работы с вводом/выводом. - #include
- подключает библиотеку locale.h, которая содержит функции для работы с локалью. - int HasSubstring(const char str, const char substr) - функция поиска подстроки в строке. Возвращает индекс первого символа подстроки в строке или -1, если подстрока не найдена.
- void main() - точка входа в программу.
- *char S = malloc(80); //
Hello, world;** - выделяет память под строкуHello, world. - *char S0 = malloc(80); //
world;** - выделяет память под строкуworld. - setlocale(LC_ALL,
Russian); - устанавливает русскую локаль. - cputs(
Введите исходную строку:); - выводит сообщениеВведите исходную строку:. - cscanf(
%s, S); - считывает строку с помощью функции cscanf и сохраняет ее в переменной S. - cputs(
\n\rВведите строку, которую ищем:); - выводит сообщениеВведите строку, которую ищем:. - cscanf(
%s, S0); - считывает строку с помощью функции cscanf и сохраняет ее в переменной S0. - printf(
\n\rРезультат: %s\n, HasSubstring(S, S0) ?TRUE:FALSE); - выводит результат поиска подстроки в строке. - _getch(); - ожидает нажатия клавиши.
- free(S); - освобождает память, выделенную под строку S.
- free(S0); - освобождает память, выделенную под строку S0.
- Программа завершается.
- Возвращается 0.
- FALSE - подстрока не найдена.
- TRUE - подстрока найдена.