File: Stare vježbe/vjezbe06/40__rad_sa_stringovima_2.c
/* 40__rad_sa_stringovima_2.c Primjer jednostavnog baratanja sa stringovima ----- Program sva slova unesenog stringa pretvara u mala, odnosno velika slova */ #include <stdio.h> #include <stdlib.h> /* u ctype.h nalazi se deklaracija funkcije toupper */ #include <ctype.h> /* maksimalna duljina linije teksta koja ce se unositi */ #define DUZINA 30 /* Napomena: primijetimo da unutar funkcije getline mijenjamo vrijednosti elemenata polja linija[]. To cemo preciznije moci objasniti kada cemo uciti pointere */ int getline(char linija[], int duz) { int c,i; i=0; while(--duz >0 && (c=getchar()) != EOF && c != '\n') linija[i++]=c; linija[i]='\0'; return i; } /* funkcija za pretvaranje velikog u malo slovo (u ctype.h postoji ekvivalentna funkcija tolower) */ int u_mala(int c) { if (c >= 'A' && c <= 'Z') return c + 'a' - 'A'; else return c; } int main() { char linija[DUZINA], velika[DUZINA], mala[DUZINA]; int i, br_znakova; br_znakova=getline(linija, DUZINA); printf("\nLinija koju ste unijeli ima %d znakova (racunajuci praznine).\n", br_znakova); i=0; while ((linija[i] != '\0') && (i <= DUZINA)) { velika[i]=toupper(linija[i]); mala[i]=u_mala(linija[i]); ++i; } velika[i]='\0'; mala[i]='\0'; printf("Mala slova: %s\n", mala ); printf("Velika slova: %s\n", velika ); /* ispisujemo prvih i/2 znakova */ printf("Velika slova (prva polovica): %.*s\n", i/ 2, velika ); return 0; }
|