Я делаю программу, которая получает от пользователя 2 строки, а затем удаляет вхождения второй строки из первой.
Направления программы: Вторая строка определяется как любая строка символов, содержащая алфавиты, специальные символы, числа или даже пробелы, которые могут присутствовать или не присутствовать в исходной строке. Он также может присутствовать несколько раз в одной и той же входной строке.
Я могу иметь строки длиной до 100 символов.
1) Получение входных строк одну за другой из пользователь, пока не будет введен символ новой строки.
2) Я хочу написать функцию для проверки вхождения строки шаблона в первую, а затем удаляет ее из первой.
3 ) Если я найду строку, верните 1, в противном случае верните 0. Он напечатает результирующую строку с удаленными символами, если таковые существуют.
Вот мой код:
#include <stdio.h>
#define STRING_SIZE 100
int remover(char *s1, char *s2, char *s3)
{
int i = 0, j, k,t=0;
while (s1[i])
{
for (j = 0; s2[j] && s2[j] == s1[i + j]; j++);
if (!s2[j])
{
for (k = i; s1[k + j]; k++)
s1[k] = s1[k + j];
s1[k] = 0;
s3[t]=s1[k + j];
t++;
}
else
i++;
}
if(strlen(s2)>1){
return 1;
}
return 0;
}
int main() {
char result_string[STRING_SIZE];
char MainString[STRING_SIZE], PatternString[STRING_SIZE];
printf("Please enter the main string..\n");
fgets(MainString,STRING_SIZE,stdin);
printf("Please enter the pattern string to find..\n");
fgets(PatternString,STRING_SIZE,stdin);
int is_stripped = remover(MainString,PatternString,result_string); // Your function call here..
printf("> ");
printf(is_stripped ? result_string : "Cannot find the pattern in the string!");
return 0;
}
Не работает: (
Некоторые примеры правильного вывода:
Please enter the main string..
This is an example string.
Please enter the pattern string to find..
ple str
>This is an examing.
Please enter the main string..
This is an example input string.
Please enter the pattern string to find..
Bazinga
>Cannot find the pattern in the string!
Please enter the main string..
A string is string.
Please enter the pattern string to find..
str
>A ing is ing.
**In this case, the pattern string was empty:**
Please enter the main string..
This is an example input string.
Please enter the pattern string to find..
>Cannot find the pattern in the string!
**In this case, the input was whitespace:**
Please enter the main string..
This is an input. This is after period.
Please enter the pattern string to find..
Thisisaninput.Thisisafterperiod.