Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- char *scan_sentence() {
- char *s = malloc(10 * sizeof(char));
- int counter = 0;
- int size = 10;
- char current_symbol;
- current_symbol = getchar();
- while ((current_symbol == ' ') || (current_symbol == '\t')) {
- current_symbol = getchar();
- }
- while ((current_symbol != '\n') && (current_symbol != ';') && (current_symbol != '.') && (current_symbol != '?') &&
- (current_symbol != '!')) {
- if (counter >= size - 5) {
- size += 20;
- s = realloc(s, size);
- }
- s[counter] = current_symbol;
- counter++;
- current_symbol = getchar();
- }
- s[counter++] = current_symbol;
- s[counter++] = '\n';
- s[counter] = '\0';
- return s;
- }
- int lucky_seven(const char *s) {
- for (int i = 0; i < strlen(s); i++) {
- if (s[i] == '7') {
- return 1;
- }
- }
- return 0;
- }
- int main() {
- char **arr = malloc(10 * sizeof(char *));
- int counter = 0;
- int size = 10;
- char *s;
- do {
- s = scan_sentence();
- if (counter == size - 1) {
- size += 10;
- arr = realloc(arr, size * sizeof(char *));
- }
- arr[counter] = s;
- counter++;
- } while (strcmp(s, "Dragon flew away!\n") != 0);
- int count_1 = counter;
- int prover = 0;
- while (prover < counter) {
- if (lucky_seven(arr[prover]) == 1) {
- free(arr[prover]);
- for (int i = prover + 1; i < counter; i++) {
- arr[i - 1] = arr[i];
- }
- counter--;
- } else {
- prover++;
- }
- }
- for (int i = 0; i < counter; i++) {
- fputs(arr[i], stdout);
- }
- int count_2 = counter;
- printf("Количество предложений до %d и количество предложений после %d", count_1-1, count_2);
- for (int i = 0; i < counter; i++) {
- free(arr[i]);
- }
- free(arr);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement