Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. int proverka(char *a, int length)
  2. {
  3.     static int i=0, counter_1=0, counter_2=0;
  4.     if(*(a+i)==40) {counter_1++; i++; return proverka(a, length);}  //40-аскикод '('
  5.     if(*(a+i)==41) {counter_1--; i++; return proverka(a, length);}  //41-аскикод ')'
  6.     if(*(a+i)==91) {counter_2++; i++; return proverka(a, length);}  //91-аскикод '['
  7.     if(*(a+i)==93) {counter_2--; i++; return proverka(a, length);}  //93-аскикод ']'
  8.     if(((*(a+i)!=40 && *(a+i)!=41)||(*(a+i)!=91 && *(a+i)!=93)) && *(a+i)!='\0')
  9.        {i++; return proverka(a, length);}
  10.     if(counter_1==0 && counter_2==0 && *(a+i)=='\0') {i=0; printf("\n\n\tСкобки в введенном выражении расставлены верно!", *a); return 0;}
  11.     else if((counter_1!=0 || counter_2!=0) && *(a+i)=='\0')
  12.         {i=0; counter_1=0; counter_2=0; printf("\n\n\tСкобки в введенном выражении расставлены не верно!", *a); return 0;}
  13. }
  14.  
  15. int main()
  16. {
  17.     setlocale(LC_ALL, "Russian");
  18.     char *string_1;
  19.     int length=0;
  20.  
  21.     if(!(string_1=(char*)malloc(256))){
  22.         printf("Недостаточно памяти!");
  23.         return 0;
  24.     }
  25.     printf("Введите строку : "); gets(string_1);
  26.     for(length; *(string_1+length)!='\0'; length++);
  27.     printf("\nДлинна строки : %d", length);
  28.     proverka(string_1, length);
  29.     getchar(); getchar();
  30.     return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement