Hogy kell ezt a programot megírni C-ben?
Elkezdtem a C programozási nyelvet tanulni B. W. Kernighan és D. M. Ritchie könyve alapján. A könyvben vannak gyakorlatok is, és az egyik ilyen gyakorlathoz szeretnék segítséget kérni!
A feladat pontos szövege:
"Írjunk olyan programot, amely a bemenetet átmásolja a kimenetre, miközben az egy vagy több szóközből álló karakterláncokat egyetlen szóközzel helyettesíti!"
Próbálkoztam vele, de csak nem sikerül sehogy sem. Több kódot is írtam már, de nem akar sikerülni.
A legutóbbi kód amit írtam rá így néz ki:
#include <stdio.h>
int main()
{
int c;
while((c=getchar())!=EOF)
{
if (c==' ')
c=' ';
putchar(c);
}
}
Ahogy gondolkodtam rajta, az lehet a baj, a karakterenként vizsgálja meg a program a bemenetet, és ezért kapom vissza ugyanazt, mint amit beírtam. De akárhogy töröm a fejem, nem tudom, hogy hogyan is tudnám azt elérni, hogy a sok szóközből egyet csináljon a program. Ha valaki tudna segíteni, hogy most merre induljak el, azt nagyon megköszönném!
Én is írhattam volna ezt
!(c==' ' && cprev==' ')
így
(c!=' ' || cprev!=' ')
de akkor még nehezebben lett volna érthető. Ehhez kell némi elméleti alap, de az is igaz, hogy ezt a kódolással és feladatokkal párhuzamosan érdemes tanulni.
Respect. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!