Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Funkcija za velika i mala slova

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Funkcija za velika i mala slova

Strane: 1 2

[ Pregleda: 4454 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

guardian_angel_13

Član broj: 144260
Poruke: 31
*.teol.net.



+2 Profil

icon [Zadatak] Funkcija za velika i mala slova17.05.2009. u 20:10 - pre 131 meseci
Kako u c-u da napisem funkciju koja ce,bilo kojim slovima da unesem ime,da transformise isto, tako da je prvo slovo veliko,a ostala mala?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4867
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+622 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova17.05.2009. u 20:48 - pre 131 meseci
Postoje funkcije:
toupper()
tolower()
... koje vracaju veliko ili malo slovo na osnovu zadatog slova.

Kako ce se resiti tvoj zadatak zavisi od toga kako zadajes ime, tj da li se zadaje samo ime, ili se zadaju istovremeno i ime i prezime, i sl.

Evo jedan mali primer /netesirano/ kako bi se to radilo kada se unosi samo ime. Inace, funkcije toupper i tolower se lako mogu i samostalno isprogramirati.

Code:

#include <stdlib.h>
#include <ctype.h>

char prvo_veliko_ostala_mala( char *ime )
{
    int i;

    if ( ime[0] )
       ime[0] = toupper( ime[0] );

    for ( i=1; ime[i]; i++ )
        ime[i] = tolower( ime[i] );
}

int main()
{
    char ime[100];
    printf( "Unesite ime:" );
    scanf( "%s", &ime );

    prvo_veliko_ostala_mala( &ime );

    printf( "Ime nakon funkcije: %s\n", &ime );
    system("PAUSE");
    return 0;
}
 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
*.teol.net.



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova17.05.2009. u 20:54 - pre 131 meseci
U zadatku kaze da se unosi i ime i prezime,a korisnik moze i samo prezime da upise...
 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
*.teol.net.



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova17.05.2009. u 21:02 - pre 131 meseci
I nisam naglasila da se unosi niz imena i prezimena,a ne samo jedno...
 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
81.93.73.*



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova18.05.2009. u 10:20 - pre 131 meseci
Ovaj kod radi ,ali samo zaz jedno ime.A kako za niz?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4867
93.87.4.*

Jabber: xfiles@elitesecurity.org


+622 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova18.05.2009. u 10:38 - pre 131 meseci
Daj tvoj kod kojim unosis imena u niz.


Tj da se rascisti da li je niz kada se unese ovako reprezentovan:
char niz[]="Marko Janko Milan";

...ili je niz ovako reprezentovan:
char *niz[]={"Marko", "Janko", "Milan"};



 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
81.93.73.*



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova18.05.2009. u 11:03 - pre 131 meseci
Ja sam ovako napisala
duz=0;
gets(&osobe[uk_duz]);
index=uk_duz;
duz=strlen(&osobe[uk_duz]);
uk_duz=uk_duz+duz+1;
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4867
93.87.4.*

Jabber: xfiles@elitesecurity.org


+622 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova18.05.2009. u 11:16 - pre 131 meseci
// netestirano
Code:

#include <stdlib.h>
#include <ctype.h>

char prvo_veliko_ostala_mala2( char *ime )
{
    int i;

    for ( i=0; ime[i]; i++ )
    {
        if ( i == 0 )
        {
            if ( isalpha( ime[0] ) )
                ime[0] = toupper( ime[0] );
        }
        else
        {
            if ( isalpha( ime[i] ) )
            {
                if ( ime[i-1] == ' ' )
                    ime[i] = toupper( ime[i] );
                else
                    ime[i] = tolower( ime[i] );

            }
        }
    }
}

int main()
{
    char ime[100];
    printf( "Unesite ime:" );
    gets( ime );

    prvo_veliko_ostala_mala2( &ime );

    printf( "Ime nakon funkcije: %s\n", &ime );
    system("PAUSE");
    return 0;
}

 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
81.93.73.*



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova18.05.2009. u 12:04 - pre 131 meseci
Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX_IME 30
#define MAX_DUZ 20
#define MAX_UK_DUZ 600
char prvo_veliko_ostala_mala2( char *osobe )
{
    int i;

    for ( i=0; osobe[i]; i++ )
    {
        if ( i == 0 )
        {
            if ( isalpha( osobe[0] ) )
                osobe[0] = toupper( osobe[0] );
        }
        else
        {
            if ( isalpha( osobe[i] ) )
            {
                if ( osobe[i-1] == ' ' )
                    osobe[i] = toupper( osobe[i] );
                else
                    osobe[i] = tolower( osobe[i] );

            }
        }
    }
}

main()
{
    char osobe[MAX_UK_DUZ];
    int indeksi[MAX_IME];
    int br_ime=0, uk_duz=0, duz, indeks, i;
    
    /*Citanje i obrada pojedinog grada*/
    printf("Unesite niz imena :\n");
    
    do
    {
        duz=0;
        indeks=uk_duz;
        gets(&osobe[indeks]);
        

        duz=strlen(&osobe[indeks]);
        uk_duz+=duz+1;
    
    
          
    
                /*Uvrstavanje novog imena u sortirani niz starih imena*/
                    for(i=br_ime-1; i>=0; i--)
                       if (strcmp(&osobe[indeksi[i]], &osobe[indeks])<0)
                         indeksi[i+1]=indeksi[i];
                       else break;
                       
                       indeksi[i+1]=indeks;
    
    
    } while (++br_ime<MAX_IME && (uk_duz+MAX_DUZ<MAX_UK_DUZ) && (duz!=0));
    
    
    /*Ispisivanje sortiranog niza imena*/
    printf("\nUredjeni niz imena\n");
     prvo_veliko_ostala_mala2( &osobe );
    for(i=0; i<br_ime; puts(&osobe[indeksi[i++]]));
    
    
  system("PAUSE");    
  return 0;
}

Evo citavog koda,ali mi i dalje radi samo za prvo uneseno ime i prezime a ne i za ostala
 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
*.telrad.net.



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 09:17 - pre 130 meseci
Jel treba da promijenim nesto u funkciji za velika i mala slova ili nije u redu unos i smjestanje imena u matricu?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4867
93.87.4.*

Jabber: xfiles@elitesecurity.org


+622 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 09:25 - pre 130 meseci
Nije dat ceo tekst zadataka. Jako je teško zaključivati kako glasi teksta zadataka iz ugla koda koji verovatno nije najoptimalnije započet.

Što se tiče smeštanja više imena:

char ime[20]; // Ovo je dovoljno za smeštanje JEDNOG imena (maks duzine 19 slova, jer poslednje mora biti NULL terminator), pri čemu je ime[0] prvo slovo imena, ime[1] drugo, itd...

char ime[10][20]; // Ovo je dovoljno za smeštanje DESET imena (dužine kao gore, vaze ista pravila), pri čemu je ime[0][0] prvo slovo prvog imena, ime[1][0] prvo slovo drugog imena, ime[1][1] drugo slovo drugog imena, itd...

Prema tome, treba ti matrica a ne samo niz kao sto je dato u Vasem kodu. E sad, sve opet zavisi od potrebe zadatka... tj, da li imena treba cuvati za kasinije (listanja, sortiranja) ili je potrebno samo jedno u jednom trenutku, pa se moze koristiti i niz.

 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
*.telrad.net.



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 09:29 - pre 130 meseci
Sto se tice teksta ,obican zadatak da se unose imena i prezimena i kada se ukuca the end(sto ja nisam znala kako,pa sam stavila kad je duz = 0) i onda da se ispisu imena obrnutim redosledom od abecede,i to sam napravila,tako da svako ime i prezime pocinju velikim slovom.To mi je problem.

A matrica podrzava imena sa 19 karaktera i belim znakom,i maksimalno 30 imena.to shvatam.Samo mi ovo za velika slova ne radi za svako ime,nego samo za prvo uneseno
 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
*.telrad.net.



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 09:36 - pre 130 meseci
Imena ne treba cuvati za posle,samo u tom trenutku.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4867
93.87.4.*

Jabber: xfiles@elitesecurity.org


+622 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 09:41 - pre 130 meseci
Zašto koristiš:
char osobe[MAX_UK_DUZ];

... a ne:
char osobe[MAX_IME][MAX_DUZ];

Da li je to zahtev zadatka?

Citat:
[...] i onda da se ispisu imena obrnutim redosledom od abecede [...]

Možeš li ovo pojasniti? Koliko sam shvatio, radi se o opadajucem sortiranju nizu po pravilima abecede...


 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
*.telrad.net.



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 09:45 - pre 130 meseci
To sam koristila na osnovu jednog zadatka sto smo radili,mada mislim da moze i na ovaj drugi nacin.Bitno mi je da radi funkcija za mala i velika slova.Posto nisam bas vjesta,tek sam na pocetku.A obrnutim redosledom,to je valjda isto sto i opadajuci niz.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4867
93.87.4.*

Jabber: xfiles@elitesecurity.org


+622 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 10:32 - pre 130 meseci
Code:

#include <stdio.h>
#include <stdlib.h>

#define MAX_IMENA 10
#define MAX_DUZINA_IMENA 20
int main(void)
{
    char imena[MAX_IMENA][MAX_DUZINA_IMENA];
    int broj_imena=0, i, j;
    char temp[MAX_DUZINA_IMENA];

    printf("UNESITE IMENA:\n");
    do
    {
        printf( "Unesite %d ime:", broj_imena+1 );
        gets( imena[broj_imena] );

        if ( !stricmp(imena[broj_imena], "the end" ) )
            break;

        ++broj_imena;

    } while ( broj_imena < MAX_IMENA ) ;

    for ( i=0; i<broj_imena-1; i++ )
        for ( j=i+1; j<broj_imena; j++ )
            if ( stricmp( imena[i], imena[j] ) < 0 )
            {
                strcpy( temp, imena[i] );
                strcpy( imena[i] , imena[j] );
                strcpy( imena[j], temp );
            }

    printf("IMENA U OPADAJUCEM ABECEDNOM REDOSLEDU:\n");
    for ( i=0; i<broj_imena; i++ )
        printf( "%s\n", imena[i] );

    system("PAUSE");
    return 0;
}
 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
81.93.73.*



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 11:23 - pre 130 meseci
U redu je kod,aliopet nema velikog slova a da su ostala mala?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4867
93.87.4.*

Jabber: xfiles@elitesecurity.org


+622 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 11:49 - pre 130 meseci
Samo stavi poziv one funkcije, odmah iza: gets( imena[broj_imena] );

 
Odgovor na temu

guardian_angel_13

Član broj: 144260
Poruke: 31
81.93.73.*



+2 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 13:13 - pre 130 meseci
Ok,hvala.

I samo jos jedno pitanje,sad kako je napisan kod,moze li se napisati naredba,da ukoliko neko unese broj u imenu npr Jova3n da ignorise broj?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4867
93.87.4.*

Jabber: xfiles@elitesecurity.org


+622 Profil

icon Re: [Zadatak] Funkcija za velika i mala slova19.05.2009. u 13:23 - pre 130 meseci
Naravno da moze, a to bi vec trebalo sama da znas da resavas.

Dakle, odmah nakon unosa trenutnog imena, prodjes od prvog do poslednjeg slova imena i zamenis sa blankom gde god nije slovo:

// netestirano
Code:

for ( i=0; imena[broj_imena][i]; i++ )
    if ( ! isalpha( imena[broj_imena][i] ) )
        imena[broj_imena][i] = ' ';



[Ovu poruku je menjao X Files dana 19.05.2009. u 14:36 GMT+1]
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Funkcija za velika i mala slova

Strane: 1 2

[ Pregleda: 4454 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.