HELP_řetězec – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

HELP_řetězec – C / C++ – Fórum – Programujte.comHELP_řetězec – C / C++ – Fórum – Programujte.com

 

Mitch0
Newbie
29. 10. 2008   #1
-
0
-

Zdravím,
vím že jde o triviální věc, ale jak se dá nejlépe v Céčku retězec (třeba ze vstupu) uložit do pole??

Díky moc.

Nahlásit jako SPAM
IP: 81.28.18.–
KIIV
~ Moderátor
+43
God of flame
29. 10. 2008   #2
-
0
-

je ironii ze retezec je pole... pole znaku... zakoncene specialnim znakem '\0' tj ascii hodnotou 0x00

do pole jej tedy muzes ulozit treba kopirovanim z jineho retezce strcpy (ci strncpy)
nebo nacist nejakou funkci... ikdyz gets a podobne jsou dosti nebezpecne - nekontroluji jestli mas misto tam kam kopirujes

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Mitch0
Newbie
29. 10. 2008   #3
-
0
-

To KIIV : to vim, ale jak třeba uděláš to, že napíšeš na vstup nějaký slovo a uložíš ho do proměnný?

Nahlásit jako SPAM
IP: 81.28.18.–
crAzY^
~ Moderátor
+10
Grafoman
29. 10. 2008   #4
-
0
-

To Mitch :

char pole[20];

cin >> pole;

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
KIIV
~ Moderátor
+43
God of flame
29. 10. 2008   #5
-
0
-

v C je to spis

char pole[100];

scanf("%s", pole);

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
crAzY^
~ Moderátor
+10
Grafoman
29. 10. 2008   #6
-
0
-

To KIIV : aha sry nevšiml jsem si že psal v C

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
KIIV
~ Moderátor
+43
God of flame
29. 10. 2008   #7
-
0
-

To crAzY^ : kazdopadne jedno i druhe je nebezpecne :D

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
crAzY^
~ Moderátor
+10
Grafoman
29. 10. 2008   #8
-
0
-

To KIIV : to ano :D

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
paul270
Návštěvník
29. 10. 2008   #9
-
0
-

v C je to spíš:

char pole[100];

scanf("%99s", pole);


přižemž scanf() přečte znaky a ukončí načítání mezerou, takže když máme např. řetězec: "Ahoj, jak se mas?", tak se do pole uloží jen "Ahoj,", což většinou nechceme. Takže pokud chceme číst celou řádku, použijeme třeba fci char *gets(char *str), která čte až do znaku '\n'.

Nahlásit jako SPAM
IP: 88.103.71.–
Romi
~ Anonymní uživatel
9 příspěvků
29. 10. 2008   #10
-
0
-

gets ZASADNE nepouzivat!! Na to uz dokonce upozornuji prekladace. Co kdyz je velikost nacitanyho retezce vetsi nez velikost toho pole?!! Lepsi je pouzit
char * fgets (char *s, int count, FILE *stream), ktera nacte maximalne count - 1 znaku a ulozi je do s. Zastavi se, kdyz narazi na konec radku, pricemz znak novyho radku ulozi do s a s ukonci znakem '\0'. Vrati s (vse OK) nebo NULL, pokud narazi na nejakou chybu nebo konec souboru.
Misto nejakyho souboru (FILE *stream) muzem pouzit stdin a pak bude cist ze standardiho vstupu..



char array [10];
fgets(array, 10, stdin); // nacte max 9 znaku a ulozi do array i s konovym znakem retezce

Nahlásit jako SPAM
IP: 147.229.197.–
paul270
Návštěvník
29. 10. 2008   #11
-
0
-

To Romi : Ok, to jsem nevěděl.

Nahlásit jako SPAM
IP: 88.103.71.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 119 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý