Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

johnny-walker

Conversao de Caixa (uppercase/lowercase)

Recommended Posts

Amigos venho mais uma vez pedir sua ajuda, visto que estou tentando a um bocado e não estou conseguindo chegar a algum lugar com esta função abaixo:

 

 

//declarações de variáveis

char *MyStr;



char *UpperCase(char *str)
{
    int K = 0;
    char c;

    if (str = NULL)
    {
        exit(0);
    }

    while (str[K])
    {
        if (isalpha(str[K]))
        {
            if (islower(str[K]))
            {
               c = str[K];
               str[K] = (toupper(c));
            }
        }
        K++;
    }
    return str;
}



<main()>

    MyStr = "Johnny Walker Junior";
    MyStr = UpperCase(MyStr);
    printf("MyStr > %s\n", MyStr);

<main()>

 

Alguma ideia, estou meio perdido, visto que não venho desta linguagem, isto é tão simples no pascal.

Parece que dá um access violation ao acessar a posição da variável e pelos exemplos q1ue vi na internet muda pouco.

Gostaria de saber qual o erro que estou cometendo.

 

 

bye

Compartilhar este post


Link para o post
Compartilhar em outros sites

O if está errado. Não é if (str = NULL), mas if(str == NULL)

 

A função toupper retorna um int, não um char (e recebe um int); preste atenção nisso. Não é necessário esse monte de if, pois se não for possível realizar a conversão, a função toupper retorna o argumento passado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.