Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.28 KB | None | 0 0
  1. //Ввести строку и слово. Подсчитать количество слов,
  2. //которые совпадают с  введенным, прочитанным в обратном порядке
  3. #include <stdio.h>
  4. #include <string.h>
  5. #define MAX 100
  6. void revers(char[]);
  7. int search(char[],char[]);
  8. void my_print (int, char[],char[], char []);
  9. int main()
  10. {
  11.     char word [MAX];
  12.     char string [MAX];
  13.     char tmp [MAX];
  14.     for(int i=0; i<MAX;i++){
  15.         word [i]=0;
  16.         string [i]=0;
  17.         tmp[i]=0;
  18.     }
  19.     printf("Введите слово:");
  20.     gets(word);
  21.     printf("Введите строку:");
  22.     gets(string);
  23.     revers(word);
  24.     int kol = search(word,string);
  25.     printf("Количество совпадений: %d\n", search(word,string));
  26.     my_print (kol, string, tmp, word);
  27.     return 0;
  28. }
  29. void revers(char word[]){
  30.     int size;
  31.     int c,i,j;
  32.     for(size=0; word[i]!='\0'; i++){
  33.         size++;
  34.     }
  35.     for(i=0,j=(size-1); i<j; i++,j--){
  36.         c=word[i];
  37.         word[i]=word[j];
  38.         word[j]=c;
  39.     }
  40. }
  41. int search(char word[],char string[]){
  42. int lens=strlen(string);
  43. int lenw=strlen(word);
  44. int sum=0;
  45. for(int i=0; i <= lens-lenw; i++){
  46.     for(int j=0; string[i] == word[j]; j++){
  47.         i++;
  48.         if(j==(lenw-1) && (string[i]==' '||string[i]=='\0')){
  49.                 sum++;
  50.         }
  51.     }
  52.  
  53. }
  54. return sum;
  55. }
  56. void my_print (int kol, char string[], char tmp [], char word []){
  57.     int i,j,r,t,a;
  58.     for (i = 0; i <= strlen(string); i++){
  59.         for (j = 0; string[i] == word[j]; j++){
  60.             i++;
  61.             if ((j==(strlen(word)-1)) && (string[i]==' '||string[i]=='\0')){
  62.                 for(r=i; string[r]!= '\0'; r++ ){
  63.                     string[r-(strlen(word)+1)] = string[r];
  64.                 }
  65.                 i=(strlen(word)-strlen(word));
  66.                 for(int z=strlen(word)+1;z!=0;z--){
  67.                     string[(((strlen(string)))-z)+kol-1]= ' ';
  68.                 }
  69.             }
  70.         }
  71.     }
  72.     for(t=0, a=0; a<kol; a++){
  73.         for(int b=0; b<strlen(word);b++){
  74.             tmp[t++]=word[b];
  75.         }
  76.         tmp[t++]=' ';
  77.     }
  78.     for(int z =0; z < ((r-z)-1); z++){
  79.           tmp[t++]=string[z];
  80.         }
  81.     tmp[t]='\0';
  82.  
  83.  
  84. printf ("%s\n",tmp);
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement