Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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;

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny