Advertisement
Guest User

Untitled

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