Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <ctype.h>
- #include <string.h>
- //поиск подстрок
- void substr (int n, char str[][81], char str1[][81], int *n1, int num []) {
- int i, s1, f;
- char *s, *t; //s-на текущий символ. s1- на начало подстроки
- *n1 = 0; //число подстрок
- for (i = 0; i < n; i++) {
- s = str[i];
- t = s + strlen(s)-1;
- f=0;
- while ((t >= s)&&(f == 0) ) {
- if (isdigit(*t)) {
- t--;
- } else {
- num[*n1] = i;
- s1=t-s+1;
- strncpy(str1[*n1], s, s1);
- str1[*n1][s1] = '\0';
- (*n1)++;
- f=1;
- }
- }
- }
- }
- void sort (int n1, char str1[30][81], int len[], int *ptr){
- int f=1, *j, max, i;
- for(i=0,ptr=len;i<n1;i++,ptr++){
- *ptr =strlen(str1[i]) ;
- }
- while(f){
- for(ptr=len;ptr<len+n1-1;ptr++){
- for(j=ptr+1; j< len+n1; j++){
- if(*ptr>*j){
- max=*ptr;
- *ptr=*j;
- *j=max;
- for(i=0; i<n1; i++){
- max=str1[ptr-len][i];
- str1[ptr-len][i] = str1[ptr-len+1][i] ;
- str1[ptr-len+1][i]=max;
- f=0;
- }
- }
- }
- }
- }
- }
- int main()
- {
- char str[10][81], str1[30][81];
- int i, n=0, n1, ptr, num[30], len[10];
- puts("Input strings:\n");
- while (gets(str[n]) && *str[n]&&n<10) n++;
- substr (n,str,str1,&n1,num);
- sort (n1, str1,len, &ptr);
- if (n1==0)
- puts("No substrings");
- else
- {
- puts("Substings");
- for(i=0;i<n1;i++)
- puts(str1[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement