Witam,
Mam nastepujacy problem, mam sobie napis np.: ala ma kota, i stworzylem funkcje, ktora zamienia kazda malo literke w napisie na duzo. Funkcja dziala, ale po zamianie zwraca mi jeszcze jakies smieci, w jakis sposob mozna to naprawic? Mysle ze to jest zwiazane z znakiem konca napisu "\0", ale niestety nie wiem w jaki sposob skorygowac kod, ktos naprowadzi/pomoze?
Kod:
#include <stdio.h>
#include <string.h>
char* funkcjaA(const char *nasznapis);
int main()
{
char napis[]="ala ma kota";
printf("%s", funkcjaA(napis));
return 0;
}
//Podpunkt a)
char* funkcjaA(const char *nasznapis)
{
int i;
int length;
length=strlen(nasznapis);
char *tab;
tab=(char*)malloc((length+1)*sizeof(char));
for(i=0; i<length; i++)
{
if(islower(nasznapis[i]))
{
tab[i]=toupper(nasznapis[i]);
}
else
{
tab[i]=nasznapis[i];
}
}
return tab;
}