Advertisement
Guest User

sadasd

a guest
May 23rd, 2015
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.16 KB | None | 0 0
  1. program.c
  2. 1 #include<stdio.h>
  3. 2 #include "mystr.h"
  4. 3
  5. 4 int main(void)
  6. 5 {
  7. 6 char a[100], b[100], c[100], d[100],i;
  8. 7
  9. 8 //funkcija treba ucitati liniju teksta sa stdin-a u predani buffer
  10. 9 //puts("Upisi tri stringa odvojena enterom");
  11. 10
  12. 11 printf("a:\n");
  13. 12 myreadline(a);
  14. 13 printf("b:\n");
  15. 14 myreadline(b);
  16. 15 printf("c:\n");
  17. 16 myreadline(c);
  18. 17 printf("\n");
  19. 18
  20. 19 //funkcija treba vratiti duzinu stringa
  21. 20 printf("Duzina stringa a: %d\n", mystrlen(a));
  22. 21 printf("Duzina stringa b: %d\n", mystrlen(b));
  23. 22 printf("Duzina stringa c: %d\n", mystrlen(c));
  24. 23
  25. 24 //funkcija treba prekopirati sadržaj prvog predanog stringa u drugi, vraca
  26. 25 //koliko je znakova prekopirano
  27. 26 int n = mystrcpy(a, d);
  28. 27 printf("\nString a je prekopiran u d i glasi: %s\n", d);
  29. 28 printf("Prekopirano je %d znakova\n", n);
  30. 29
  31. 30 //funkcija treba provjeriti jesu li stringovi jednaki, vraca int
  32. 31 if ( mystrcmp( a, b) )
  33. 32 printf("Stringovi a i b su jednaki!\n");
  34. 33 else
  35. 34 printf("Stringovi a i b su razliciti!\n");
  36. 35
  37. 36 //funkcija treba provjeriti je li prvi string sadrzan unutar drugoga, vraca
  38. 37 //index na kojem se nalazi prvi znak pronadjenog stringa, ili negativan broj
  39. 38 //ako nije pronadjen
  40. 39 puts("\nPretraga je li neki string dio nekog drugog stringa");
  41. 40 puts("Unesi prvo string u kojem trazim, a nakon toga string koji trazim:");
  42. 41 //char big[] = "Ovo je neki veliki string u kojem trazim!";
  43. 42 //char sub[] = "velik";
  44. 43 char big[100], sub[100];
  45. 44 printf("'glavni' string:\n"); myreadline(big);
  46. 45 printf("'podstring': \n"); myreadline(sub);
  47. 46 int loc = mysubstring(big,sub);
  48. 47 if (loc >= 0)
  49. 48 printf("String '%s' se u stringu '%s' nalazi na %d. mjestu.\n", sub, big, loc);
  50. 49 else
  51. 50 printf("String '%s' nije dio stringa '%s'\n", sub, big);
  52. 51
  53. 52 char e[100], f[100], g[100];
  54. 53 //ucitaj tekst u e i kopiraj ga u f i g
  55. 54 printf("\nUpisi tekst kojem ces mijenjati slova: \n");
  56. 55 myreadline(e);
  57. 56 mystrcpy(e,f);
  58. 57 mystrcpy(e,g);
  59. 58
  60. 59 //funkcija treba sva mala slova u stringu postaviti na velika slova
  61. 60 mytoupper(e);
  62. 61 printf("VELIKA SLOVA: %s\n", e);
  63. 62
  64. 63 //funkcija treba sva velika slova postaviti u mala
  65. 64 mytolower(f);
  66. 65 printf("mala slova: %s\n", f);
  67. 66
  68. 67 //funkcija treba sva velika slova prebaciti u mala, a sva mala u velika
  69. 68 myinvertcase(g);
  70. 69 printf("InVertIRANA sloVA: %s\n", g);
  71. 70
  72. 71
  73. 72 return 0;
  74. 73 }
  75. 74
  76. 75
  77. mystr.c
  78. 1
  79. 2 #include <stdio.h>
  80. 3 #include <stdlib.h>
  81. 4
  82. 5
  83. 6 void myreadline(char a[]){
  84. 7 gets(a);
  85. 8 }
  86. 9
  87. 10 int mystrlen(char a[]){
  88. 11 int broj;
  89. 12 for (int i=0;a[i]!='\0';i++)
  90. 13 broj=i;
  91. 14 return broj+1;
  92. 15 }
  93. 16
  94. 17 int mystrcpy(char a[], char d[]){
  95. 18 int i,k=0;
  96. 19 for (i=0;a[i]!='\0';i++){
  97. 20 d[i]=a[i];
  98. 21 k++;
  99. 22 }
  100. 23 d[k]='\0';
  101. 24 return i;
  102. 25 }
  103. 26
  104. 27 int mystrcmp( char a[],char b[]){
  105. 28 for (int i=0;a[i]!='\0';i++){
  106. 29 for (int j=0;b[i]!='\0';j++){
  107. 30 if(a[i]!=b[j]){
  108. 31 return 0;
  109. 32 }
  110. 33 else if (a[i]==b[j])
  111. 34 {
  112. 35 return 1;
  113. 36 }
  114. 37 }
  115. 38 }
  116. 39 }
  117. 40
  118. 41 int mysubstring(char big[], char sub[]){
  119. 42 for (int i=0; big[i]!='\0';i++){
  120. 43 for (int j=0;sub[j]!='\0';j++){
  121. 44 if(big[i+j]!=sub[j])
  122. 45 {
  123. 46 break;
  124. 47 }
  125. 48 if(j==(mystrlen(sub)-1))
  126. 49 {
  127. 50 return i;
  128. 51 }
  129. 52 }
  130. 53 }
  131. 54 return -1;
  132. 55 }
  133. 56
  134. 57 void mytoupper(char e[]){
  135. 58 int i;
  136. 59 for(i=0;e[i]!='\0';i++){
  137. 60 if (e[i]>96&&e[i]<122){
  138. 61 e[i]-=32;
  139. 62 }
  140. 63 }
  141. 64 }
  142. 65
  143. 66 void mytolower(char f[]){
  144. 67 int i;
  145. 68 for(i=0;f[i]!='\0';i++){
  146. 69 if (f[i]>64&&f[i]<91){
  147. 70 f[i]+=32;
  148. 71 }
  149. 72 }
  150. 73 }
  151. 74
  152. 75 void myinvertcase(char g[]){
  153. 76 int i;
  154. 77 for( i=0;i<g[i]!='\0';i++){
  155. 78 if (g[i]>96&&g[i]<122){
  156. 79 g[i]-=32;
  157. 80 }
  158. 81 else if (g[i]>65&&g[i]<90){
  159. 82 g[i]+=32;
  160. 83 }
  161. 84 }
  162. 85 }
  163. 86
  164. 87
  165. mystr.h
  166. 1 #ifndef MYSTR_H
  167. 2 #define MYSTR_H
  168. 3 #define _CRT_SECURE_NO_WARNINGS
  169. 4
  170. 5
  171. 6 void myreadline(char a[]);
  172. 7 int mystrlen(char a[]);
  173. 8 int mystrcpy(char a[], char d[]);
  174. 9 int mystrcmp( char a[],char b[] );
  175. 10 int mysubstring(char big[], char sub[]);
  176. 11
  177. 12 void mytoupper(char e[]);
  178. 13 void mytolower(char f[]);
  179. 14 void myinvertcase(char g[]);
  180. 15
  181. 16 #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement