Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Dobrý den, měla bych v C napsat progam, který zalomí řádek před posledním nemezerovým znakem před daným počtem (já si zvolila 20)
Chtěla jsem postupovat tak, že si pomocí getchar načtu znaku do vstupu do té doby, než tam bude mezera. rovnou je budu vypisovat. Budu také počítat počet znaků. když tam bude mezera, tak si znaky za ní budu ukládat do stringu, do té doby, než dojdu s počtem znaků ke dvacítce.Řeším ovšem problém, co dělat, když tam budou další mezery a jak celý tento postup vlastně zapsat. toto jsem zatím stvořila(jetoho opravdu málo) a nevím, co dál:
#include <stdio.h>
#define ZALOM 20
int main (void)
{
int c,i;
char znaky[ZALOM];
while ((c=getchar()) != '@')
{
if( c!= ' ')
{
putchar(c);
++i;
}
else if (c == ' ')
{
/*zde bych chtela nacitat do toho pole */
}
printf("\n%s", znaky);
}
}
Offline

Podobny priklad se resil tady na foru, ale mozna je to jiny zpusob zalamovani. Nevim, jestli spravne rozumim, kde se to ma presne zalamovat. Kdyz budes mit retezec treba:
"1234567890 0123456789012" tak ma se to zalomit jakoby v te mezere, takze vznikne:
"1234567890"
"0123456789012"
anebo se to ma zalomit presne po tech 20 znacich takhle? :
"1234567890 012345678"
"9012"
Offline
↑ Lumikodlak:
Omlouvám se, že jsem se špatně vyjádřila. Má se to zalamovat v mezeře. Děkuji za odkaz, podívám se na to
Offline

Ok, mozna na tom odkazu to neni moc prehledne. Nemusi se pouzivat fseek. Jde tam o to, ulozit si nekam, kde je posledni mezera (proste ulozit pozici pri kazde mezere), a po tech 20 znacich vypsat (zkopirovat) jen to do te posledni mezery.
Offline