tumaryui

Лаба для человека

May 27th, 2020
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <string>
  4. #include <locale.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <algorithm>
  8. #include <string.h>
  9. using namespace std;
  10.  
  11. bool cmp(char* a, char* b) {
  12. int lena = strlen(a);
  13. int lenb = strlen(b);
  14. return lena < lenb;
  15. }
  16. int main()
  17. {
  18. setlocale(LC_ALL, "Russian");
  19. int n, i;
  20. cout << "количество фраз" << endl;
  21. scanf("%d", &n);
  22. char **arr_phrases = new char* [n];
  23. getchar();
  24. cout << "Введите фразы" << endl;
  25. for (i = 0; i < n; i++) {
  26. arr_phrases[i] = new char[1001];
  27. gets(arr_phrases[i]);
  28. }
  29. cout << "Введите слово" << endl;
  30. char word[1001];
  31. gets(word);
  32. int dlen = 0;
  33. for(int i = 0; i < n; i++) {
  34. if(strstr(arr_phrases[i], word) != NULL) {
  35. dlen++;
  36. }
  37. }
  38. char** N_arr_p = new char* [dlen];
  39. int pos = 0;
  40.  
  41. for (int i = 0; i < n; i++) {
  42. if(strstr(arr_phrases[i], word) != NULL) {
  43. N_arr_p[pos++] = arr_phrases[i];
  44. arr_phrases[i] = "-1";
  45. }
  46.  
  47. }
  48.  
  49. // Все строки которые содержат word
  50. cout << "Строки содержащие слово " << word << endl;
  51. for(int i = 0; i < pos; i++) {
  52. cout << N_arr_p[i] << endl;
  53. }
  54.  
  55. cout << "Введите тип сортировки(1 - по алфавиту, 2 - по длине)" << endl;
  56. int type;
  57. cin >> type;
  58. if(type == 1) {
  59. sort(N_arr_p, N_arr_p + pos); // сортировка по алфавиту
  60. } else {
  61. sort(N_arr_p, N_arr_p + pos, cmp); // сортировка массива с помощью компаратора cmp
  62. }
  63. cout << "Отсортированный массив " << word << endl;
  64. for(int i = 0; i < pos; i++) {
  65. cout << N_arr_p[i] << endl;
  66. }
  67. }
Add Comment
Please, Sign In to add comment