
Céčko, jednoduchý zárhel s returnem
Dobrý večer, potřeboval bych prosím poradit s kodem v céčku.
Mám ošetření, že když je kterýkoli znak z řetězce jiný než velké písmeno tak se proměnná nastaví na 1. Na konci testuju a když je proměnná 1 tak se musí pomocí return navrátit NULL, jenže ten vrátí podivné znaky. V opačném případě to má vrátit řetězec výsledek. Jenže jakmile ta kdekoliv mám return výsledek, t return NULL nevrací NULL ale podivné znaky o velikosti výsledek. Díky za rady.
int i;
int delka = 0;
char *vysledek;
char *pom;
int test = 0;
pom = str;
while (*pom != '\0')
{
pom++;
delka++;
}
while (i<=delka)
{
if (*(str + i) < 65) test = 1;
if (*(str + i) > 90) test = 1;
i++;
}
vysledek = (char*)malloc(delka + 1 * sizeof(char));
for (i=0; i<=delka; i++)
{
if (*(str + i) > 87)
{
*(vysledek + i) = *(str + i) - 25 + 2;
}
else *(vysledek + i) = *(str + i) + 3;
}
vysledek[delka] = '\0';
if (test == 1)
{
free(vysledek);
return NULL;
}
else return vysledek;