| 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