ZER DAKIDAN: Arrayak eta kateak ezagutzen ditut. ZER IKASIKO DUDAN: Arrayen ariketa bat egingo dut. |
Teklatuaren bidez sartutako esaldia karaktereka aztertu aldaketa hauek eginez:
- Letra bokala bada, majuskuletara igaro
- Bokala ez den letra bada, minuskuletara igaro
- Gainerako karaktereak ez aldatu
Esaldi bat fgets() bitartez irakurri ondoren (noski, azken lerro-berri karakterea kendu beharko da), esaldiko karaktere guztiak banan-banan arakatu zein aldaketa aplikatuko zaion erabakia hartuz.
/* Ariketa-56_LarriakXeheak: kate bat emanik bokalak majuskuletan eta eta gainerako letrak minuskuletan jarri. */ // Datua fgets() bitartez irakurri ondoren, azken INTRO karakterea kendu beharko da. // Ariketaren funtsa katea karaktereka prozesatzean dago. #include <stdio.h> #include <string.h> // strcspn() eta strlen() funtzioetarako #include <ctype.h> // toupper() eta tolower() funtzioetarako #include <stdbool.h> // bool datu-motarako bool fnboBokalaDa(char letra); int main() { char sEsaldia[21]; // gehienez 20 karakteredun katea (+1 posizio bat '\0' mugatzailerako) int i; printf("\n//////////////////////////////////////\n\n"); printf("sEsaldia eman: "); fgets(sEsaldia, sizeof(sEsaldia), stdin); // katea irakurri bere neurria zainduz //sEsaldia[strcspn(sEsaldia, "\n")] = '\0'; // Enter karakterea kendu sEsaldia[strlen(sEsaldia)-1] = '\0'; // Enter karakterea kentzeko printf("\n"); printf("---|01234567890123456789|--- gehienez 20\n"); printf("===|%s|===\n", sEsaldia); // kate osoa prozesatu karaktereka for (i = 0; i < strlen(sEsaldia); i++) { if (fnboBokalaDa(sEsaldia[i])) { sEsaldia[i] = toupper(sEsaldia[i]); // bokal bada majuskuletan jarri } else { sEsaldia[i] = tolower(sEsaldia[i]); // ez bada bokal minuskuletan jarri } } printf("===|%s|===\n", sEsaldia); printf("\n//////////////////////////////////////\n\n"); return 0; } // Karaktere bat bokal ote den aztertzen duen funtzioa bool fnboBokalaDa(char letra) { switch (tolower(letra)) { case 'a': case 'e': case 'i': case 'o': case 'u': return true; // bokala da default: return false; // ez da bokala } }
iruzkinik ez:
Argitaratu iruzkina