Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*• Napisati funkciju char** load_words() koja
- učitava jedan red teksta sa standardnog ulaza i
- smešta ga kao niz reči koji vraća kao rezultat. Red
- se sastoji samo od reči i tačno jednog blanko
- znaka između svake dve susedne reči. Na
- početku, kao i na kraju reda su reči. Za učitavanje
- teksta je potrebno dinamički alocirati prostor
- tako da se tekst smesti kao niz reči. Smatrati da
- reč ima najviše 100 znakova. Na kraju izvršavanja
- prethodne funkcije treba da bude alocirano tačno
- onoliko prostora koliko je potrebno da se smeste
- učitane reči.*/
- #include <stdlib.h>
- #define WORD_LEN 100
- char** load_words() {
- char c, **words = NULL;
- int wordCnt = 0, wordStart = 1, pos;
- while(1) {
- c = getchar();
- if(c == '\n' && !wordCnt) break;
- if(wordStart) {
- words = realloc(words,
- sizeof(*words) * (++wordCnt + 1));
- if(!words) {
- perror(NULL); exit(EXIT_FAILURE);
- }
- words[wordCnt - 1] =
- calloc(sizeof(**words), (WORD_LEN + 1));
- if(!words[wordCnt - 1]) {
- perror(NULL); exit(EXIT_FAILURE);
- }
- words[wordCnt] = NULL;
- wordStart = 0; pos = 0;
- }
- words[wordCnt - 1][pos++] = c;
- if(c == ' ' || c == '\n') {
- words[wordCnt - 1] =
- realloc(words[wordCnt - 1],
- sizeof(**words) * pos);
- words[wordCnt - 1][pos-1] = '\0';
- wordStart = 1;
- if(c == '\n') break;
- }
- }
- return words;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement