Ha megnyomjuk a space-t a billentyűn kiír egy tetszóleges szöveget, de hogyan? (c nyelv)
pl progi ha kicsit furán fogalmaztam volna
:
#include <stdio.h>
#define S 1000
main()
{
int a,b,i,T;
char szo[S];
b=(a=1)+1;
printf("Add meg a kiirando (angol) szot!\n");
scanf("%s",&szo);
printf("Irj be egy szamot es kirom annyiszor a szoveget!\n");
scanf("%d",&T);
for (i=0; i<T;i++) {
printf("%s\n",szo);
}
}
Ha két szót akarnák beírni akkor ugye space-t kellene nyomni és ekkor akarom hogy kiirja, hogy pl: Csak egy szót írj be .
Szerencséd van.
A scanf levág mindent az első szóköz után, nem kell neked megoldanod.
Ha viszont olyan megoldást választanál a szöveg bevitelére, ami elfogadná a szóközöket is, akkor azt ajánlanám, hogy iterálj végig a tömbön, nézd meg, hol az első szóköz, és az addig tartó karaktereket tebb át egy második tömbbe, és csak azt írasd ki. De, mint mondtam, ezúttal mindez nem releváns.
A második kérdezőnek
a b=(a=1)+1; az egy értékadás b-nek
bocs a a végtelen ciklus programból maradt benne, elfelejtettem kitörölni.
(az a=1 és ha az a-hoz adok +1 akkor az 2 és a b = 2 ,ilyan "összefűző" érték adás is van c-ben)
Pro tip #1:
char Input[5];
int Val = 6;
scanf("%s", Input);
printf("%d", Val);
Próbáld ki, hogy beírsz 4 betűt majd entert nyomsz. Most próbáld ki legalább 5 betűvel. Na, ezért veszélyes string-et beolvasni scanf-fel vagy gets-sel. Helyette használd az fgets-t:
fgets(a tömböd neve, hány elemű a tömböd, honnan olvasol);
Például:
char Input[5];
fgets(Input, 5, stdin);
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!