C

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
marko365
Nový používateľ
Nový používateľ
Príspevky: 90
Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov

C

Príspevok od používateľa marko365 »

Ako ukladat premenne z jedneho riadku odelene medzerov do samostatnych arrayov.
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: C

Príspevok od používateľa pEpinko »

Co? Mohol by si dat nejaky priklad?
Používateľov profilový obrázok
marko365
Nový používateľ
Nový používateľ
Príspevky: 90
Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov

Re: C

Príspevok od používateľa marko365 »

Mam na mysli ze z konzoloveho okna mam vstup nasledovny : 1 2 3 4 5 6 7 8 9 0
a toto mam zapisat do poly[0] [1] [2]...Alebo ako to mam ulozit do int bez medzier.
Používateľov profilový obrázok
crux2005
VIP
VIP
Príspevky: 10030
Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky

Re: C

Príspevok od používateľa crux2005 »

Pomocou getchar() načítaš vstup, ak to nie je medzera (je to číslo) => uložíš a prevedieš na int napr. pomocou atoi a keď to je isspace, tak to preskočíš a budeš ďalej čítať vstup po EOF. Následné ukladanie už snáď zvládneš.
s pozdravom, crux.
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: C

Príspevok od používateľa pEpinko »

Podla mna najelegantnejsie je to pomocou strtok.
Spoiler: ukázať
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define BUFFER_SIZE 1000

int main()
{
char *buf = (char*)malloc(sizeof(char) * BUFFER_SIZE);
int *poly = NULL;
int n = 0;
gets(buf);

char *ptr;
ptr = strtok (buf, " ");
while (ptr != NULL)
{
n++;
poly = realloc(poly, n * sizeof(int));
poly[n - 1] = atoi(ptr);
ptr = strtok (NULL, " ");
}

for (int i = 0; i < n; i++)
{
printf("%d \n", poly);
}
free(buf);
return 0;
}
Používateľov profilový obrázok
marko365
Nový používateľ
Nový používateľ
Príspevky: 90
Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov

Re: C

Príspevok od používateľa marko365 »

Ja som zaciatocnik tak trosku vysvetlit ze ako to napisat a co to presne robi by sa nedalo.
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: C

Príspevok od používateľa pEpinko »

Nerozumies tej funkcii strtok, alebo tomu ostatnemu. Lebo tie malloci a realloci tam v principe byt nemusia.

char *buf = (char*)malloc(sizeof(char) * BUFFER_SIZE);

je skoro to iste ako (ono je to vlastne dost rozne, ale ak nevies co je malloc, tak ti to moze byt jedno)

char buf[BUFFER_SIZE];
Používateľov profilový obrázok
crux2005
VIP
VIP
Príspevky: 10030
Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky

Re: C

Príspevok od používateľa crux2005 »

pEpinko napísal:Podla mna najelegantnejsie je to pomocou strtok.
delimiters ma napadly, ale strtok nie

napriek tomu, že je to 'najelegatnejšie' riešenie, je otázne, či môžu použiť strtok
a takisto či je to spôsob riešenia ktoré by dokázal nakódiť
s pozdravom, crux.
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: C

Príspevok od používateľa pEpinko »

Suhlasim, nicmenej objavit zaujimave funkcie v C standard library je vzdy poucne :). (vela ich tam neni...)
Používateľov profilový obrázok
crux2005
VIP
VIP
Príspevky: 10030
Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky

Re: C

Príspevok od používateľa crux2005 »

strtok nie je pre mňa nejaká neznáma funkcia, použil som ju, ale už dávnejšie
preto hneď nemusí človeka napadnúť, najmä keď sa to dá aj inak riešiť
s pozdravom, crux.
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: C

Príspevok od používateľa pEpinko »

Teraz nejak nechapem. To je adresovane mne? Ja som len chcel napisat ine riesenie ako tvoje. A nakoniec som poznamenal, ze urcite autorovi nezaskodi si pozriet tych malo uzitocnych funkcii, ktore v C library su.
Používateľov profilový obrázok
crux2005
VIP
VIP
Príspevky: 10030
Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky

Re: C

Príspevok od používateľa crux2005 »

tak sme sa obaja nejako nepochopili :D
s pozdravom, crux.
Používateľov profilový obrázok
marko365
Nový používateľ
Nový používateľ
Príspevky: 90
Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov

Re: C

Príspevok od používateľa marko365 »

Pani, vsetko ohlado c sa chcem naucit takze viac moznosti mi neprekaza.
A mohol by mi niekto vysvetlit to "eof" to je 'end of file'.
Používateľov profilový obrázok
crux2005
VIP
VIP
Príspevky: 10030
Dátum registrácie: So 18. Jún, 2005, 20:00
Bydlisko: Nové Zámky

Re: C

Príspevok od používateľa crux2005 »

áno, EOF je end of file = -1 (int)

a keď chceš nejaké info o štd. funkciách C/C++, odporúčam: http://www.cplusplus.com/
s pozdravom, crux.
Používateľov profilový obrázok
marko365
Nový používateľ
Nový používateľ
Príspevky: 90
Dátum registrácie: So 03. Júl, 2010, 19:45
Bydlisko: Presov

Re: C

Príspevok od používateľa marko365 »

Takze eof mi zmenzi int o 1.

Návrat na "Programovanie"