Advertisement
adnanj

Funkcije za učitavanje stringa

May 3rd, 2017
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.63 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. char * UcitajString(int velicina)
  4. {
  5.     char * string = new char[velicina + 1]; // alociramo dovoljno memorijskog prostora za željeni niz karaktera + null-terminirajući
  6.     char znak = getchar(); // učitavamo prvi karakter i dodjeljujemo ga promjenljivoj "znak"
  7.     int i = 0; // deklarišemo i inicijalizujemo brojač koji nam neće dozvoliti da prekoračimo dozvoljeni broj karaktera
  8.     while (i < velicina && znak != '\n') { // dok god ima mjesta u nizu karaktera, a korisnik nije pritisnuo tipku "Enter"
  9.         string[i++] = znak; // uneseni znak stavljamo u niz na odgovarajuću indeks-poziciju
  10.         znak = getchar(); // zahtijeva od korisnika unos novog karaktera koji dodjeljuje u promjenljivu "znak"
  11.     }
  12.     string[i] = '\0'; // na kraju unosa postavljamo null-terminirajući karakter
  13.     return string; // vraćamo niz karaktera
  14. }
  15.  
  16. void getline(char string[], int velicina) // simuliranje cin.getline
  17. {
  18.     char znak = getchar();
  19.     int i = 0;
  20.     while (i < velicina && znak != '\n') {
  21.         string[i++] = znak;
  22.         znak = getchar();
  23.     }
  24.     string[i] = '\0';
  25. }
  26.  
  27. void main()
  28. {
  29.     // Testiranje funkcije "UcitajString"
  30.     std::cout << "Unesite string (funkcija \"Ucitaj string\"): ";
  31.     char * s1 = UcitajString(20); // funkcija vraća pokazivač na prvi karakter novoalociranog niza karaktera
  32.     std::cout << "Unijeli ste sljedeci string (s1): " << s1 << std::endl;
  33.  
  34.     // Testiranje funkcije "getline" koja simulira ponašanje funkcije "getline" objekta "cin"
  35.     char s2[50];
  36.     std::cout << "Unesite string (funkcija \"getline\"): ";
  37.     getline(s2, 50);
  38.     std::cout << "Unijeli ste sljedeci string (s2): " << s2 << std::endl;
  39.  
  40.     system("pause>>FIT");
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement