Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Ввести строку и слово. Подсчитать количество слов,
- //которые совпадают с введенным, прочитанным в обратном порядке
- #include <stdio.h>
- #include <string.h>
- #define MAX 100
- void revers(char[]);
- int search(char[],char[]);
- void my_print (int, char[],char[], char []);
- int main()
- {
- char word [MAX];
- char string [MAX];
- char tmp [MAX];
- for(int i=0; i<MAX;i++){
- word [i]=0;
- string [i]=0;
- tmp[i]=0;
- }
- printf("Введите слово:");
- gets(word);
- printf("Введите строку:");
- gets(string);
- revers(word);
- int kol = search(word,string);
- printf("Количество совпадений: %d\n", search(word,string));
- my_print (kol, string, tmp, word);
- return 0;
- }
- void revers(char word[]){
- int size;
- int c,i,j;
- for(size=0; word[i]!='\0'; i++){
- size++;
- }
- for(i=0,j=(size-1); i<j; i++,j--){
- c=word[i];
- word[i]=word[j];
- word[j]=c;
- }
- }
- int search(char word[],char string[]){
- int lens=strlen(string);
- int lenw=strlen(word);
- int sum=0;
- for(int i=0; i <= lens-lenw; i++){
- for(int j=0; string[i] == word[j]; j++){
- i++;
- if(j==(lenw-1) && (string[i]==' '||string[i]=='\0')){
- sum++;
- }
- }
- }
- return sum;
- }
- void my_print (int kol, char string[], char tmp [], char word []){
- int i,j,r,t,a;
- for (i = 0; i <= strlen(string); i++){
- for (j = 0; string[i] == word[j]; j++){
- i++;
- if ((j==(strlen(word)-1)) && (string[i]==' '||string[i]=='\0')){
- for(r=i; string[r]!= '\0'; r++ ){
- string[r-(strlen(word)+1)] = string[r];
- }
- i=(strlen(word)-strlen(word));
- for(int z=strlen(word)+1;z!=0;z--){
- string[(((strlen(string)))-z)+kol-1]= ' ';
- }
- }
- }
- }
- for(t=0, a=0; a<kol; a++){
- for(int b=0; b<strlen(word);b++){
- tmp[t++]=word[b];
- }
- tmp[t++]=' ';
- }
- for(int z =0; z < ((r-z)-1); z++){
- tmp[t++]=string[z];
- }
- tmp[t]='\0';
- printf ("%s\n",tmp);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement