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

[Zadatak] Napisati funkciju s imenom adresa() koja ...

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Napisati funkciju s imenom adresa() koja ...

[ Pregleda: 2776 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

chalka
chalka chalka
BiH

Član broj: 74148
Poruke: 16
*.dlp146.bih.net.ba.



Profil

icon [Zadatak] Napisati funkciju s imenom adresa() koja ...31.12.2005. u 01:28 - pre 179 meseci
molim vas da mi pomognete ja sam nesto pokusao ali mi ne ide bas ovaj unos ni ispis u glavnoom programu inace jedna nesto malo kontam iz ovih pokazivaca i stringova

zadatak glasi :
1. Napisati funkciju s imenom adresa() koja kao argument uzima dva stringa koji predstavljaju ime i
prezime a kao rezultat vraća novi string koji se dobije tako da se string koji predstavlja prezime
promijeni u string koji predstavlja e-mail adresu slijedećeg oblika:
[prezime].[ime]@yahoo.com
Prototip funkcije je:
char *adresa(char *ime, char *prezime)
Na primjer, ako su argumenti ime=“Marko“, prezime=“Markovic“ funkcija adresa() vraća pokazivač
na rezultirajući string prezime koji je promijenjen u novi string oblika:
[email protected]
Nakon toga, napisati glavni program koji učitava ime i prezime neke osobe i na standardnom izlazu
ispisuje toj osobi pridruženu e-mail adresu koja se dobije pozivom funkcije adresa().


moj pokusaj:

Code:

#include<stdio.h>
char *adresa(char *ime, char *prezime)
{
    int i;
    char ostatak[]="@yahoo.com";
    char *p=prezime;
    while(*prezime !='\0')
    {
        prezime++;
    }
    *prezime='.';
    prezime++;
    while (*ime='\0')
    {
        *prezime=*ime;
        prezime++;
        ime++;
    }
    i=0;
    while(ostatak[i]='\0')
    {
        *prezime=ostatak[i];
        prezime++;
        i++;
    }
    *prezime='\0';
    return p;
}
int main()
{
    char ime[20], prezime[30];
    printf("\nUnesite ime: ");
    scanf("%c", &ime);
    printf("\nUnesite prezime: ");
    scanf("%c", &prezime);
    while (*adresa(ime,prezime)!='\0')
    {
        printf("%c",*adresa(ime,prezime));
        *adresa(ime,prezime)=*adresa(ime,prezime)+1;
    }
    return 0;
}

ovo sam malo uz materijale sa predavanja napisao ali upadnem u neki beskonacno dugi ispis nekih brojeva (ne znam vec kako se to zove)
molim pomozite mi

hitno mi je!
 
Odgovor na temu

BigSmallMan

Član broj: 55561
Poruke: 7
*.nspoint.net.



Profil

icon Re: [Zadatak] Napisati funkciju s imenom adresa() koja ...31.12.2005. u 09:10 - pre 179 meseci
Mozda moze nesto ovako:

Code:
#include<stdio.h>
#include<string.h>

char *adresa(char *ime, char *prezime)
{
    strcat(prezime, ".");
    strcat(prezime, ime);
    strcat(prezime, "@yahoo.com");
    
    return prezime;
}
int main()
{
    char ime[100], prezime[100];

    printf("\nUnesite ime: ");
    scanf("%s", &ime);
    printf("\nUnesite prezime: ");
    scanf("%s", &prezime);
    printf("\n%s\n\n",adresa(ime,prezime));
    
    return 0;
}
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: [Zadatak] Napisati funkciju s imenom adresa() koja ...31.12.2005. u 09:19 - pre 179 meseci
Da li neko pazi na konverziju velikih u mala slova?

Ako radis staticko resenje (sto je verovatno slucaj), verovatno zelis da koristis staticki niz unutar f-je koja resava problem ili neki globalni. U svakom slucaju se vraca pokazivac na njega. Evo primera dinamickog resenja:

Code:
// dinamicki...

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

unsigned int strl(const char*p)
{
    const char * q = p;
    while(*q) q++;
    return q-p;
}

void strcatlow(char *dest,const char*src)
{
    while(*dest) dest++;
    while(*dest = tolower(*src)) dest++,src++;
}

char *adresa(char *ime, char *prezime)
{
    static char add[] = "@yahoo.com";
    
    char * p = (char*) malloc( strl(ime) + 1 + strl(prezime) + strl(add) + 1 );
    *p = 0;
    strcatlow(p,ime);
    strcatlow(p,".");
    strcatlow(p,prezime);
    strcatlow(p,add);

    return p;
}

main()
{
    char * p = adresa("Milan","Milanovic");

    printf("%s",p);

    // ne zaboraviti...
    free ( p ) ;
    
    return 0;
}

Ipak se ++uje.
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: [Zadatak] Napisati funkciju s imenom adresa() koja ...31.12.2005. u 09:22 - pre 179 meseci
1. U gornjem kodu treba prvo dodati prezime pa ime. Trenutno stoji obrnuto.
2. Uzgred, input stringova ide sa:
Code:
char a[30];
scanf("%s",a);

3. Mislim da yahoo ne dozvoljava tacke unutar imena naloga...

[Ovu poruku je menjao Mali Misha dana 31.12.2005. u 10:39 GMT+1]
Ipak se ++uje.
 
Odgovor na temu

darkon
Darko Novakovic
Istrazivac, IMP
Beograd

Član broj: 13647
Poruke: 166
*.222.17.bitsyu.net.

Jabber: darkon@elitesecurity.org


+1 Profil

icon Re: [Zadatak] Napisati funkciju s imenom adresa() koja ...31.12.2005. u 15:14 - pre 179 meseci
Evo tvog rešenja, ali naravno malo modofikovanog. Ovo treba da radi:

Code:
#include<stdio.h>

char *adresa(char *ime, char *prezime)
{
    int i;
    char ostatak[]="@yahoo.com";
    char *p=prezime;
    while(*prezime !='\0')
    {
        prezime++;
    }
    *prezime='.';
    prezime++;
    while (*ime!='\0')
        *prezime++=*ime++;

    i=0;
    while(ostatak[i]!='\0')
        *prezime++=ostatak[i++];
        
    *prezime='\0';

    return p;
}
int main()
{
    char ime[20], prezime[30];
    char *pp;
    
    printf("\nUnesite ime: ");
    scanf("%s", &ime);
    printf("\nUnesite prezime: ");
    scanf("%s", &prezime);
    
    pp=adresa(ime,prezime);
    
    while (*pp !='\0')
        printf("%c",*(pp++));
        
    printf("\n");
    
    return 0;
}

"Verovatno da preko nje mnoge sile kontrolišu mnogo šta..." - GANDOR
"Kada bi ljudski mozak bio tako jednostavan da bismo mogli da ga shvatimo, onda bismo mi bili toliko glupi da ga ipak ne bismo mogli shvatiti."
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: [Zadatak] Napisati funkciju s imenom adresa() koja ...31.12.2005. u 15:26 - pre 179 meseci
Novogodisnja zona sumraka oko i/o stringova u C. Idem ja negde drugde do 1.1. ;)
Ipak se ++uje.
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: [Zadatak] Napisati funkciju s imenom adresa() koja ...31.12.2005. u 22:51 - pre 179 meseci
Code:

sprintf(adresa, "%s.%[email protected]", ime,prezime);


samo vodi racuna da u adresa ima dovoljno mesta...

yooyo
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Napisati funkciju s imenom adresa() koja ...

[ Pregleda: 2776 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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