TsetsoP

den 5

Jul 9th, 2021 (edited)
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.27 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. //zad1//
  6. int strLength(strArr)
  7. {
  8. printf("%d\n", strlen(strArr));
  9. return 0;
  10. }
  11. int main()
  12. {
  13. char strArr[10];
  14. gets(strArr);
  15. strLength(strArr);
  16. return 0;
  17. }
  18. -------------------------------------------
  19. //zad2//
  20. int strComp(char* str1,char* str2)
  21. {
  22. if(strlen(str1) != strlen(str2))
  23. {
  24. return (*str1 - *str2) > 0 ? 1 : -1;
  25. }
  26. while(*str1)
  27. {
  28. if(*str1 != *str2)
  29. {
  30. return (*str1 - *str2) > 0 ? 1 : -1;
  31. }
  32. str1++;
  33. str2++;
  34. }
  35. return 0;
  36. }
  37. int main ()
  38. {
  39. char str1[25];
  40. char str2[25];
  41. gets(str1);
  42. gets(str2);
  43. printf("%d", strComp(str1, str2));
  44. return 0;
  45. }
  46. -------------------------------------------------
  47. //zad3//
  48. void strCopy(char* str1, const char* str2)
  49. {
  50. char* p = str1;
  51. while(*str2)
  52. {
  53. *p = *str2;
  54. p++;
  55. str2++;
  56. }
  57. p = '\0';
  58. }
  59. int main ()
  60. {
  61. char str1[22];
  62. char str2[22];
  63. gets(str1);
  64. strCopy(str2, str1);
  65. printf("%s", str2);
  66. }
  67. ------------------------------------------------
  68. //zad4//
  69. char* strConcatenate(char* destination, const char* source){
  70.  
  71. char* str1End = destination + strSize(destination);
  72.  
  73. while (*source != '\0') {
  74. *str1End++ = *source++;
  75. }
  76. *str1End = '\0';
  77.  
  78. return destination;
  79. }
  80. int main ()
  81. {
  82. char str1[22];
  83. printf("Enter string: ");
  84. gets(str1);
  85.  
  86. char str2[22];
  87. printf("Enter string: ");
  88. gets(str2);
  89.  
  90. printf("Your concatenated strings: %s", strConcatenate(str1, str2));
  91. return 0;
  92. }
  93. -----------------------------------------
  94. //ZAD 5 AND 6//
  95.  
  96. #include <stdio.h>
  97. #include <string.h>
  98.  
  99. int strsize(const char* str)
  100. {
  101. int cnt = 0;
  102. while (*str)
  103. {
  104. cnt++;
  105. str++;
  106. }
  107. return cnt;
  108. }
  109.  
  110. void strcopy(char* destination, const char* source)
  111. {
  112. char* p = destination;
  113. while (*source)
  114. {
  115. *p = *source;
  116. p++;
  117. source++;
  118. }
  119. p = '\0';
  120. }
  121.  
  122. int strcompare(const char* str1, const char* str2)
  123. {
  124. while (*str1)
  125. {
  126. if (*str1 != *str2)
  127. {
  128. break;
  129. }
  130. str1++;
  131. str2++;
  132. }
  133. return *str1 - *str2;
  134. }
  135.  
  136.  
  137. int cointainsNano(const char* str)
  138. {
  139. int state = 0; // empty
  140.  
  141. while (*str)
  142. {
  143. if (state == 0)
  144. {
  145. if (*str == 'n')
  146. {
  147. state = 1; // n
  148. }
  149. }
  150. else if (state == 1)
  151. {
  152. if (*str == 'a')
  153. {
  154. state = 2; // na
  155. }
  156. else if (*str == 'n')
  157. {
  158. // same state
  159. }
  160. else
  161. {
  162. state = 0; // empty
  163. }
  164. }
  165. else if (state == 2)
  166. {
  167. if (*str == 'n')
  168. {
  169. state = 3; // nan
  170. }
  171. else
  172. {
  173. state = 0; // empty
  174. }
  175. }
  176. else if (state == 3)
  177. {
  178. if (*str == 'o')
  179. {
  180. state = 4;
  181. return 1;
  182. }
  183. else if (*str == 'n')
  184. {
  185. state = 1; // n
  186. }
  187. else if (*str == 'a')
  188. {
  189. state = 2; // na
  190. }
  191. else
  192. {
  193. state = 0; // empty
  194. }
  195. }
  196. str++;
  197. }
  198. return 0;
  199. }
  200.  
  201.  
  202.  
  203. int countNano(const char* str)
  204. {
  205. int cnt = 0;
  206. int state = 0; // empty
  207.  
  208. while (*str)
  209. {
  210. if (state == 0)
  211. {
  212. if (*str == 'n')
  213. {
  214. state = 1; // n
  215. }
  216. }
  217. else if (state == 1)
  218. {
  219. if (*str == 'a')
  220. {
  221. state = 2; // na
  222. }
  223. else if (*str == 'n')
  224. {
  225. // same state
  226. }
  227. else
  228. {
  229. state = 0; // empty
  230. }
  231. }
  232. else if (state == 2)
  233. {
  234. if (*str == 'n')
  235. {
  236. state = 3; // nan
  237. }
  238. else
  239. {
  240. state = 0; // empty
  241. }
  242. }
  243. else if (state == 3)
  244. {
  245. if (*str == 'o')
  246. {
  247. state = 4;
  248. cnt++;
  249. }
  250. else if (*str == 'n')
  251. {
  252. state = 1; // n
  253. }
  254. else if (*str == 'a')
  255. {
  256. state = 2; // na
  257. }
  258. else
  259. {
  260. state = 0; // empty
  261. }
  262. }
  263. else if (state == 4)
  264. {
  265. if (*str == 'n')
  266. {
  267. state = 1; // n
  268. }
  269. else
  270. {
  271. state = 0; // empty
  272. }
  273. }
  274. str++;
  275. }
  276. return cnt;
  277. }
  278.  
  279.  
  280. int main()
  281. {
  282. char str1[50];
  283. printf("Enter first string: ");
  284. gets(str1);
  285. printf("Contains nano: %s\n", cointainsNano(str1) ? "yes" : "no");
  286. printf("Count nano: %d\n", countNano(str1));
  287. return 0;
  288. }
  289.  
Add Comment
Please, Sign In to add comment