Wlasna funkcja zamiany wielkosci liter

0

Witam!
Potrzebuje taka funkcje ktora dostaje w argumencie tablice znakow i zamienia duze na male lub odwrotnie.
Naskrobalem cos takiego:
[code]
void zamiana_male_na_duze(char p)
{
while(
(p++))
{
if(((*p)>96)&&((*p)<123))
{
*p=-32;
}
printf("%s", p);
}

}
[/code]

w main mam
char tekst[500];
i funkcja jest wywolywana:
zamiana_male_na_duze(tekst);

mam wrazenie ze cos z moim printem jest nie tak.
Mam jeszcze dodatkowe pytanie: w funkcji lepiej operawac w tym przypadku na wskaznikach i czy odebrac ja jako tablice?

0

wskaźnik p wskazuje na znak za zerem.
Śnią Ci się czasem nawiasy po nocach?

#include <ctype.h>
#include <cstdio>

char* upcase1(char *str)
{
    for(char * s = str; *s; ++s)
        *s = toupper(*s);
    return str;
}
char* upcase2(char *str)
{
    for(char * s = str; *s; ++s)
        if(*s >= 'a' && *s <= 'z') *s += 'A' - 'a';
    return str;
}

int main()
{
    char str1[] = "tekSt";
    char str2[] = "abcDDD";
    puts(upcase1(str1));
    puts(upcase2(str2));
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1