C funcja na zamiane liter

robin5hood
Użytkownik
Użytkownik
Posty: 1676
Rejestracja: 2 kwie 2007, o 14:43
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 178 razy
Pomógł: 17 razy

C funcja na zamiane liter

Post autor: robin5hood »

Kod: Zaznacz cały

#include<stdio.h>
void zamien_m(char *s)
{

for (;*s!='\0';s++)
if ((*s>='a') && (*s<='z'))
*s=*s-32;
};
int main()
{
    printf("Zamienia duze litery na małe i odwrtotnie \n");
char napis[]="gdagdagdFDFFFFFFF";
zamien_m(napis);
printf(napis);
scanf("%");
return 0;
};


jak mienić ten program aby zamieniał wszystkie litery na duże z wyjatkiem małych "a"
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

C funcja na zamiane liter

Post autor: matshadow »

if ((*s>='b') && (*s<='z'))
robin5hood
Użytkownik
Użytkownik
Posty: 1676
Rejestracja: 2 kwie 2007, o 14:43
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 178 razy
Pomógł: 17 razy

C funcja na zamiane liter

Post autor: robin5hood »

dzieki
michand
Użytkownik
Użytkownik
Posty: 25
Rejestracja: 13 sie 2008, o 16:04
Płeć: Mężczyzna
Lokalizacja: Warszawa
Pomógł: 8 razy

C funcja na zamiane liter

Post autor: michand »

matshadow pisze:if ((*s>='b') && (*s<='z'))
Nie zawsze uklad liter musi byc taki jak w tablicy ASCII. Lepiej skorzystac z funkcji z ctype.h (isupper(), islower(), isalpha() i tak dalej..). Oczywiscie nie wplywa to na rozwiazanie powyzszego zadania, ale takie porownywanie powoduje problemy z przenosnoscia kodu.

Michal
robin5hood
Użytkownik
Użytkownik
Posty: 1676
Rejestracja: 2 kwie 2007, o 14:43
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 178 razy
Pomógł: 17 razy

C funcja na zamiane liter

Post autor: robin5hood »

a jak zmienić ten powyzszy kod aby zmieniało tylko litery na wielkie które są po lierze "a"
np
abgggannn aBgggaNnn
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

C funcja na zamiane liter

Post autor: matshadow »

Kod: Zaznacz cały

#include <ctype.h>
int i;
char napis[]="abgggannn aBgggaNnn";
for(i=1;i<sizeof(napis);i++)
if(napis[i-1]=='a') napis[i]=toupper(napis[i]);
robin5hood
Użytkownik
Użytkownik
Posty: 1676
Rejestracja: 2 kwie 2007, o 14:43
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 178 razy
Pomógł: 17 razy

C funcja na zamiane liter

Post autor: robin5hood »

a gdzie to co napisałes umieścic w tym moim kodzie?
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

C funcja na zamiane liter

Post autor: matshadow »

tam gdzie masz tablicę znaków napis[]
ODPOWIEDZ