fork(1) download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <locale.h>
  5. #include <time.h>
  6. #include <math.h>
  7. void print(char words[30][11], char* str, int n) {
  8. puts("Entered string:");//вывод исходной строки
  9. puts(str);
  10. for (int i = 1; i <= n; i++) {
  11. puts(words[i]);
  12. }
  13. }
  14. char* prog(char* str) {
  15. char words[30][11];// создание матрицы символов для 30 слов из 10 символов
  16. int wordcount = 0;
  17.  
  18. for (int i = 0; i < (int)strlen(str); i++) {
  19. if (str[i] == '(') {
  20.  
  21. wordcount++;
  22. if (wordcount > 30) {
  23. puts("too many words in string.");
  24. print(words, str, wordcount-1);
  25. return(0);
  26. }
  27. int wordlen = 0; i++;
  28. while (str[i] != ')' ) {
  29. if( i < (int)strlen(str)){
  30. if (wordlen > 9) {
  31. puts("too many symbols in word");
  32. print(words, str, wordcount-1);
  33. return(0);
  34. }
  35. if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z') || (str[i] >= '0' && str[i] <= '9')) {
  36. words[wordcount][wordlen] = str[i];
  37. wordlen++;
  38. }
  39. else {
  40. puts("unacceptable symbols in word");
  41. print(words, str, wordcount-1);
  42. return(0);
  43.  
  44. }
  45. i++;
  46. }else{
  47. puts("invalid string format");
  48. print(words, str, wordcount-1);
  49. return 0;
  50. }} words[wordcount][wordlen] = '\0';
  51. if (wordlen < 1) {
  52. puts("too few symbols in word");
  53. print(words, str, wordcount-1);
  54. return(0);
  55. }
  56.  
  57. }
  58. else if (str[i] == ')') {
  59. puts("invalid string format");
  60. print(words, str, wordcount);
  61. return 0;
  62. }
  63. if (wordcount < 1) {
  64. puts("too few words(0)");
  65. return(0);
  66. }
  67. }
  68.  
  69. print(words, str, wordcount);
  70.  
  71.  
  72. return 0;
  73. }
  74.  
  75. int main(void) {
  76. setlocale(LC_ALL, "Russian");
  77. char str[13][333] = {
  78. "(aaa)(bbb)ccc(ddd)", "(a)(b)(c()d)(f)","(aaa)(bbb)(ccc)(dddd)(eeeeeee)","(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)(21)(22)(23)(24)(25)(26)(27)(28)(29)(30)(31)","(",")","(?)"," ","(slovo1)(slovo)(sadasd)(sadasdad)(sadwewwq)(daddaasd)(saddasdads)","(sdadsds)sadsadaas)", "())))))" ,"(((((123456789999,SSSS.)))))", "(dfdsfdsd))"};
  79. for (int i = 0; i <= 12; i++) {
  80. printf("\n----\n Test case #%i, transmitted string:", i + 1);
  81. puts(str[i]);
  82. prog(str[i]);// вызов функции обработки строки
  83. }
  84. return 0;
  85. }
  86.  
Success #stdin #stdout 0s 4388KB
stdin
Standard input is empty
stdout
----
 Test case #1, transmitted string:(aaa)(bbb)ccc(ddd)
Entered string:
(aaa)(bbb)ccc(ddd)
aaa
bbb
ddd

----
 Test case #2, transmitted string:(a)(b)(c()d)(f)
unacceptable symbols in word
Entered string:
(a)(b)(c()d)(f)
a
b

----
 Test case #3, transmitted string:(aaa)(bbb)(ccc)(dddd)(eeeeeee)
Entered string:
(aaa)(bbb)(ccc)(dddd)(eeeeeee)
aaa
bbb
ccc
dddd
eeeeeee

----
 Test case #4, transmitted string:(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)(21)(22)(23)(24)(25)(26)(27)(28)(29)(30)(31)
too many words in string.
Entered string:
(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)(21)(22)(23)(24)(25)(26)(27)(28)(29)(30)(31)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

----
 Test case #5, transmitted string:(
invalid string format
Entered string:
(

----
 Test case #6, transmitted string:)
invalid string format
Entered string:
)

----
 Test case #7, transmitted string:(?)
unacceptable symbols in word
Entered string:
(?)

----
 Test case #8, transmitted string:        
too few words(0)

----
 Test case #9, transmitted string:(slovo1)(slovo)(sadasd)(sadasdad)(sadwewwq)(daddaasd)(saddasdads)
Entered string:
(slovo1)(slovo)(sadasd)(sadasdad)(sadwewwq)(daddaasd)(saddasdads)
slovo1
slovo
sadasd
sadasdad
sadwewwq
daddaasd
saddasdads

----
 Test case #10, transmitted string:(sdadsds)sadsadaas)
invalid string format
Entered string:
(sdadsds)sadsadaas)
sdadsds

----
 Test case #11, transmitted string:())))))
too few symbols in word
Entered string:
())))))

----
 Test case #12, transmitted string:(((((123456789999,SSSS.)))))
unacceptable symbols in word
Entered string:
(((((123456789999,SSSS.)))))

----
 Test case #13, transmitted string:(dfdsfdsd))
invalid string format
Entered string:
(dfdsfdsd))
dfdsfdsd