Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define Ss 10 // для массива предложений
- #define S 20 // для символов в предложениях
- #define DR "Dragon flew away!"
- char *inputSentence(){
- char *sentence = malloc(S * sizeof(char));
- char symbol = getchar();
- int n = 0;
- int sizeSentence = S;
- if(symbol == ' ' || symbol == '\t'){
- symbol = getchar();
- }
- while(symbol != '.' && symbol != ';' && symbol != '?' && symbol != '\n'){
- if(n == sizeSentence - 2){
- sizeSentence += S;
- sentence = realloc(sentence, sizeSentence * sizeof(char));
- }
- sentence[n] = symbol;
- n++;
- symbol = getchar();
- }
- if(symbol != '\n'){
- sentence[n] = symbol;
- sentence[n + 1] = '\0';
- }else{
- sentence[n] = '\0';
- }
- return sentence;
- }
- int main(){
- char **arraySentences = malloc(Ss * sizeof(char*));
- int n = 0;
- int sizeArray = Ss;
- char *sentence;
- do{
- sentence = inputSentence();
- if(n == sizeArray - 1){
- sizeArray += Ss;
- arraySentences = realloc(arraySentences, sizeArray * sizeof(char*));
- }
- arraySentences[n] = sentence;
- n++;
- }while(strcmp(arraySentences[n - 1], DR));
- int N = n - 1; // количество предложений в изначальном тексте
- int i = 0;
- while(strcmp(arraySentences[i], DR)){
- int lengthSentence = strlen(arraySentences[i]);
- if(arraySentences[i][lengthSentence - 1] == '?'){
- free(arraySentences[i]);
- for(int j = i; j < n - 1; j++){
- arraySentences[j] = arraySentences[j + 1];
- }
- //free(arraySentences[n]);
- n--;
- }else{
- i++;
- }
- }
- int M = n - 1; // количество предложений в отформатированном тексте
- for(int i = 0; i < n; i++){
- puts(arraySentences[i]);
- free(arraySentences[i]);
- }
- free(arraySentences);
- printf("Количество предложений до %d и количество предложений после %d\n", N, M);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement