Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- #define MAX 51
- char **alociraj_nisku(int n){
- char **niska=NULL;
- int i,j;
- niska=(char**)malloc(n*sizeof(char*));
- if(niska==NULL)
- return NULL;
- for(i=0; i<n; i++){
- niska[i]=malloc(MAX*sizeof(char));
- if(niska[i]==NULL){
- for(j=0; j<i; j++){
- free(niska[j]);
- }
- free(niska);
- return NULL;
- }
- }
- return niska;
- }
- char **oslobodi_nisku(char **niska, int n){
- int i;
- for(i=0; i<n; i++){
- free(niska[i]);
- }
- free(niska);
- return NULL;
- }
- int main (int argc, char **argv){
- FILE *ulaz;
- char **niska=NULL;
- int n;
- int i;
- if(argc!=2){
- printf("Ne poziva se tako program.\n");
- exit(EXIT_FAILURE);
- }
- ulaz=fopen(argv[1], "r");
- if(ulaz==NULL){
- printf("Greska pri otvaranju datoteke.\n");
- exit(EXIT_FAILURE);
- }
- fscanf(ulaz, "%d", &n);
- if(n<=0){
- fprintf(stderr, "Greska, n ne moze biti negativno.\n");
- exit(EXIT_FAILURE);
- }
- niska=alociraj_nisku(n);
- if(niska==NULL) {
- printf("Greska pri alokaciji.\n");
- exit(EXIT_FAILURE);
- }
- for(i=0; i<n; i++){
- fscanf(ulaz, "%s", niska[i]);
- }
- for(i=n-1; i>=0; i--){
- if(isupper(niska[i][0]))
- printf("%s\n", niska[i]);
- }
- niska=oslobodi_nisku(niska,n);
- fclose(ulaz);
- exit(EXIT_FAILURE);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement