Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <regex.h>
- #include <string.h>
- #include <stdlib.h>
- #include<ctype.h>
- /*
- char** input(){
- int i = 0;
- int len_text = 1;
- int len_sen = 3;
- int j = 0;
- char c;
- char** text = calloc(len_text, sizeof(char*));
- text[i] = (char*) calloc(len_sen, sizeof(char));
- do{
- c = getchar();
- if(c == '\n'){
- len_text += 1;
- text = realloc(text, sizeof(char*)*(len_text));
- text[i][j] = c;
- text[i][j+1] = '\0';
- text[i+1] = (char*) calloc(3, sizeof(char));
- i++;
- j = 0;
- len_sen = 3;
- continue;
- } else
- text[i][j] = c;
- if(j >= len_sen - 3){
- len_sen += 3;
- text[i] = realloc(text[i], (len_sen)*sizeof(char));
- }
- j++;
- }while(c != '.');
- text[i][0] = '\n';
- return text;
- } */
- char* input(){
- int size = 15;
- char* string = calloc(len_sen*sizeof(char));
- }
- void output(char **text, int i){
- for(int h = 0; h < i; h++){
- if(text[h][0] != '\0')
- printf("%s ", text[h]);
- }
- printf("\n");
- }
- int text_len(char** text, int i){
- int j = 0;
- while(text[i][0] != '\n'){
- if(text[i][j] == '\0'){
- i++;
- j = 0;
- }
- j++;
- }
- return i;
- }
- int main(){
- int i = 0;
- size_t maxGroups = 3;
- regex_t regexCompiled;
- regmatch_t groupArray[maxGroups];
- char** text = input();
- i = text_len(text, i);
- char* regex_str = "\\w+@[\\w-]+: ?~ ?\\# (.+)";
- if (regcomp(®exCompiled, regex_str, REG_EXTENDED)){
- printf("Ошибка компиляции регулярного выражения\n");
- return 0;
- }
- for(int k = 0; k < i; k++){
- if(!regexec(®exCompiled, text[k], maxGroups, groupArray, 0)){
- for(int m=groupArray[1].rm_so; m<groupArray[1].rm_eo; m++) putchar(text[i][m]);
- printf(" - ");
- for(int m=groupArray[2].rm_so; m<groupArray[2].rm_eo; m++) putchar(text[i][m]);
- putchar('\n');
- }
- }
- output(text, i);
- for(int s = 0; s < i; s++){
- free(text[s]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement