Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <string.h>
  4. //поиск подстрок
  5. void substr (int n, char str[][81], char str1[][81], int *n1, int num []) {
  6.  
  7. int i, s1, f;
  8. char *s, *t; //s-на текущий символ. s1- на начало подстроки
  9. *n1 = 0; //число подстрок
  10. for (i = 0; i < n; i++) {
  11. s = str[i];
  12. t = s + strlen(s)-1;
  13. f=0;
  14.  
  15.  
  16.  
  17. while ((t >= s)&&(f == 0) ) {
  18. if (isdigit(*t)) {
  19.  
  20. t--;
  21. } else {
  22. num[*n1] = i;
  23. s1=t-s+1;
  24. strncpy(str1[*n1], s, s1);
  25. str1[*n1][s1] = '\0';
  26. (*n1)++;
  27. f=1;
  28.  
  29.  
  30. }
  31. }
  32. }
  33. }
  34. void sort (int n1, char str1[30][81], int len[], int *ptr){
  35. int f=1, *j, max, i;
  36. for(i=0,ptr=len;i<n1;i++,ptr++){
  37.  
  38. *ptr =strlen(str1[i]) ;
  39. }
  40. while(f){
  41. for(ptr=len;ptr<len+n1-1;ptr++){
  42. for(j=ptr+1; j< len+n1; j++){
  43. if(*ptr>*j){
  44. max=*ptr;
  45. *ptr=*j;
  46. *j=max;
  47. for(i=0; i<n1; i++){
  48. max=str1[ptr-len][i];
  49. str1[ptr-len][i] = str1[ptr-len+1][i] ;
  50. str1[ptr-len+1][i]=max;
  51. f=0;
  52. }
  53. }
  54.  
  55. }
  56.  
  57. }
  58. }
  59. }
  60.  
  61. int main()
  62. {
  63. char str[10][81], str1[30][81];
  64. int i, n=0, n1, ptr, num[30], len[10];
  65. puts("Input strings:\n");
  66. while (gets(str[n]) && *str[n]&&n<10) n++;
  67. substr (n,str,str1,&n1,num);
  68. sort (n1, str1,len, &ptr);
  69. if (n1==0)
  70. puts("No substrings");
  71. else
  72. {
  73. puts("Substings");
  74. for(i=0;i<n1;i++)
  75. puts(str1[i]);
  76.  
  77. }
  78. return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement