- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Azonnali alaplapos kérdések órája
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Hobby elektronika
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Vezetékes FEJhallgatók
- HDMI topic
- OLED monitor topik
- Melyik tápegységet vegyem?
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
shinodas #3397 üzenetére
Linux alatt régóta nem dolgoztam IDE-vel (mindent letudtam vimmel, GCC-vel és ha nagyon muszáj ddd-vel), úgyhogy konkrét értelmesebbet nem tudok mondani. Anno a KDevelop tetszett, meg van az Anjuta nevű GNOME-os cucc.
Alternatíva lehetne a Qt Creator vagy a NetBenas, de azok ugyanúgy bugosak mint a C::B... Az Eclipse-szel nem tudom mi a helyzet.
kispx: Ezt ugye viccből írtad?
-
kispx
addikt
válasz
shinodas #3397 üzenetére
Code :: Blocks
Visual Studio -
shinodas
tag
warning:gdb:failed to set controlling terminal
peration not permitted
erre a hibaüzenetre valaki tud valamit? nem enged debuggolni normálisan :S -
shinodas
tag
Sziasztok!
int main()
{
char tomb[144];
int i=0;
char a=0;
while(i<145)
{
if(a>'A' && a<'z')
{
tomb[i]==a;
i++;
a++;
}
else{
a++;
}
}
return 0;
}
Azt szeretném elérni, hogy az ascii táblából az A és a z karakterek közti elemeket tegye be egy tömbbe. A tomb==a-ra nem tudom miért írja, hogy semmilyen hatása nincs, mármint, nem értem miért nem jó. És ezt a hibát is dobja "warning:gdb:failed to set controlling terminal: operation not permitted" Ubuntu alatt, codeblocksban. -
pvt.peter
őstag
int a=5, b=2;
a= b ? b=b+(a=a+b--) : b+++--a;lehet, hogy rosszul tudom de én ezt így csinálnám:
b=b+(a=a+b--)
b értékét csökkentem eggyel, mert először az egy operandusú műveleteket hajtjuk végre,
tehát b=1
utána a=5+1, tehát a=6
utána b=1+6, tehát b=7vhogy nekem sehogy sem tűnik jónak ez az egész
-
Jester01
veterán
Na nem azért nem szabványos
C szabvány, 6.5.2 bekezdés:Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression. Furthermore, the prior value shall be read only to determine the value to be stored.
This paragraph renders undefined statement expressions such as
i = ++i + 1;Márpedig az adott kódban ilyenek vannak.
Egyébiránt GCC meg is mondja:
ph.c: In function 'main':
ph.c:5: warning: operation on 'b' may be undefined
ph.c:5: warning: operation on 'a' may be undefined
ph.c:10: warning: operation on 'd' may be undefined
ph.c:10: warning: operation on 'c' may be undefined -
kispx
addikt
Jah, megnéztem a forráskódot és az előző hozzászólásom tárgytalan.
Este van
int main(){
int a=5, b=2;
a= b ? b=b+(a=a+b--) : b+++--a;
a b nem nulla volt azért a kif1 ? kif2 : kif3 operátor a kif2 kifejezés kiértékelődésével folytatódik.
b=b+(a=a+b--) Értékadó kifejezés a kif jobb oldalának a kiértékelődésével kezdődik.
(a=a+b--)
a = 5+2 majd a b értéke a zárójeles kif kiért. után csökken eggyel. Ez okozza, hogy a végén a két szám eggyel eltér.
b=2+6 (mert a zárójeles kifnél csökkent a b értéke eggyel)
Majd végül
a = 2+7Szerk.: (bocs a megfogalmazásért, fáradt voltam
)
-
pvt.peter
őstag
Sziasztok!
Az alábbi programkódot letudná nekem írni vki lépésről lépésre?
(a kimenet a következő lesz: a=9, b=8, c=14, d=13)#include <stdio.h>
int main(){
int a=5, b=2;
a= b ? b=b+(a=a+b--) : b+++--a;
printf("%d, %d\n", a, b);
int c=5, d=2;
printf("\n");
c=d?d*=(c+=d--):d+++--c;
printf("%d, %d", c, d);
system("PAUSE");
return 0;
}Előre is köszönöm.
-
rt06
veterán
eloszor is, mindharmotoknak koszonom a gyors valaszt
a kerdesedre valaszolva pedig, az a helyzet, hogy fogalmam sincs, mit kellene visszaadnia
sajnos semminemu dokumentaciom nincs
a nagyobbik gond, hogy - bar elvileg hiba nelkul ter vissza az fgv - a count es a handleList pointer is erteke is 0, ugyhogy bar elorebb vagyok, mint eddig, sajnos tovabbra sem tudok elorebb jutnimindenesetre megegyszer koszonom a segitsegetek
-
kispx
addikt
Listát vagy tömböt ad vissza? Első látásra én inkább a tömbre tippelnék..
"a kerdesem az lenne, hogy a fgv masodik parametere (**handleList) mi akar lenni?"
Egy kis olvasnivaló. A tömb nulladik elemére mutató pointer címe. Pl. (Szerk.: felesleges példa, jobbat írtak, de azért meghagyom)void f(int **y)
{
cout << **y;
}
int main()
{
int *x = (int*)calloc(10, sizeof(int)); //A tömb nulladik elemére mutat
int **ptr = &x;
f(ptr); /*vagy*/
f(&x);
return 0;
}"vagyis ket int-et ad vissza az fgv" (a mondat második felét nem értettem
)
Nem feltétlenül ad vissza két int-et a fv. Az első paraméter tuti, hogy egy unsigned-ra mutató pointer lesz. (Hogy módosítja az értéket vagy sem az nem derül ki, ehhez kellett volna a dokumentációs is). A második paramétert meg fent kifejtettem.
-
Karma
félisten
Mint adja magát a szignatúrából, ez a függvény kiad egy n-elemű tömböt valami channelhandle-ökről, külön a hosszt és külön egy pointert az új (és majd utána általad letörlendő!) tömbről. Jester01 abszolút jól írta a meghívását, csak gondoltam kiegészítem
Ilyen paramétert akkor szokás használni, ha a függvény fogja létrehozni azt a tömböt, ami a lekérdezés eredményét tárolja. Te csak adsz neki egy helyet, ahova a kezdőelem pointerét elteheti.
-
rt06
veterán
Hi!
regen nem programoztam c-ben, akkor is csak annyit, amennyi az egyetemhez kellett, most viszont elemkerult nemi kod, es ennek megerteseben kernem a segitsegetek
adott egy ilyen az egyik .h file-ban
YW_ErrorType_T YWNATIVE_GetChannelList(U32 * uCount, U32** handleList);a YW_ErrorType_T az U32, az U32 pedig unsigned int (typedef U32 YW_ErrorType_T; typedef unsigned int U32;)
a kerdesem az lenne, hogy a fgv masodik parametere (**handleList) mi akar lenni? ahogy olvasgatom, a ** elvileg egy pointer-re mutato pointer, de ami engem zavar, hogy ez csak egy insugned int tipusu valtozora mutato pointer pointer-e lehet? vagyis ket int-et ad vissza az fgv, vagy azok ott lehetnek masok is? (az elso, az uCount az jo lenne int-nek, a masodik nem annyira - egy listat kellene valamilyen formaban visszaadnia, de nem tudom, milyen parameterekkel hivjam a fgv-t)
sajnos semminemu dokumentaciom nincs a fgv-hez
-
Retekegér
MODERÁTOR
válasz
Jester01 #3370 üzenetére
Először is köszi a segítséget!
Tudom, hogy a conio.h és getch nem szabványos, a konzol ablak bezáródásának megakadályozására használom. Tudom, nem elegáns és elég noob, egyelőre magára az algoritmizálásra koncentrálok.
A tömb elem növelést tényleg elqrtam...A megvalósításhoz innen merítettem ihletet, ott így néz ki a programkód.
-
Jester01
veterán
válasz
Retekegér #3369 üzenetére
conio.h és getch nem szabványos, arra van a getchar amit mellesleg a csúnya scanf helyett is használhatsz.
Ha a while ciklus már elérte a végét, akkor a getch már amúgy is fölösleges.
A tömb elem növelésénél pedig nem i-t hanem c-t kellene használni indexeléshez.
Ezen felül ajánlott kapcsoszárójeleket és áttekinthetőbb struktúrát használni.
Ja és nem formázott kiíráshoz fölösleges a printf, arra van a puts.A ctrl+z pedig elképzelhető, hogy csak üres sorban fog működni (legalábbis a linuxos ctrl+d így van) tehát előbb enter kell az aktuális sor lezárásához majd jöhet az EOF.
#include <stdio.h>
int main ()
{
int c;
int i;
int tomb[10];
puts("Fajl vege jelig (Ctrl+Z) szabvanyos bementrol olvasva");
puts("megszamoljuk, hogy hany szamjegy van a szovegben.\n");
for (i=0; i<10; i++) {
tomb[i]=0;
}
while ((c = getchar()) != EOF) {
if (c>='0' && c<='9') {
tomb[c-'0'] += 1;
}
}
for (i=0; i<10; i++) {
printf("%d: %d\n",i,tomb[i]);
}
return 0;
} -
Retekegér
MODERÁTOR
válasz
Korcsii #3368 üzenetére
Bemásolom az egészet:
#include <stdio.h>
#include <conio.h>
int main ()
{
char c;
int tomb[10], i;
printf("Fajl vege jelig (Ctrl+Z) szabvanyos bementrol olvasva\n");
printf("megszamoljuk, hogy hany szamjegy van a szovegben.\n\n");
for (i=0; i<10; i++)
tomb[i]=0;
while (scanf("%c",&c)==1)
if (c>='0' && c<='9')
tomb[i-'0']++;
for (i=0; i<10; i++)
printf("%d: %d\n",i,tomb[i]);
getch();
return 0;
} -
Retekegér
MODERÁTOR
válasz
Korcsii #3366 üzenetére
Igen, ^Z lesz a konzolon. Ütök utána Entert is, de harmadjára műkszik kb. Illusztráció.
-
Retekegér
MODERÁTOR
Hali!
Van egy olyan gondom, hogy ha a fájl vége jelig kell olvasni szabványos bemenetről, akkor a programban ezt kissé nehézkes ezt megadnom. Megnyomom a Ctrl+Z kombót és nem történik semmi, vagy csak többszöri lenyomás után. Mit csinálok rosszul?
-
Karma
félisten
Ennyi:
open("/dev/input/uinput", O_WRONLY) = -1 ENOENT (No such file or directory)Na most két lehetőség van. Vagy a /dev/uinput alatt van ez a device (és létrehozhatsz egy symlinket a ln -s /dev/uinput /dev/input/uinput paranccsal a kívánt helyre), vagy nincs is uinput a rendszeredben...
Utóbbi esetben a modprobe uinput megérhet egy próbát, de ha nem, akkor kernelt kéne forgatnod, ami a jelen felállásban szerintem halott ügy.
-
Jester01
veterán
Rögtön az elején kezdődnek a bajok:
open("/dev/input/uinput", O_WRONLY) = -1 ENOENT (No such file or directory)
Egész egyszerűen nincs ilyen eszköz, például nincs benne a kernelben vagy nincs betöltve a szükséges modul.A kód valóban gány, mert 0 ellenőrzés van benne, pedig az open nem nullát ad vissza hiba esetén, hanem -1-et.
ufile = open("/dev/input/uinput", O_WRONLY);
if (ufile == 0) {
printf("Could not open uinput.\n"); -
Karma
félisten
Szép. Ezek szerint az összes ezelőtti ioctl hívás is sikertelen, csak mivel gány a kód, semmilyen hibakezelés nincs hozzá.
Ki tudnád menteni az egész strace-t egy fájlba? Pl. strace valami > strace.log, ezt a fájlt meg felnyomni dropboxra? Akkor látszana az eleje is, hogy miért nem jó a file descriptor.
Gyanús, hogy az uinput nem ott van, mint ahol számítana rá.
-
Ricqy
tag
-
-
Karma
félisten
Én azért megnézném, hogy nem lehet-e Debian csomagokat telepíteni a rendszerre (van-e pl. apt-get). Megkönnyítené az strace felhergelését
Vagy itt van egy csomag, amit a dpkg -i felrak, ha az van.
Másrészről szerintem a Zipit Z2 topikja jobban megfelelne ennek a témakörnek.
-
Karma
félisten
A rendszerlogban nem látszik valami más hiba? Egy kiírás látszik az uinput forrásából.
De tényleg az lenne a jobb, ha egy strace-t is feltáncolnál a PDA-ra, és azzal futtatnád.
-
Ricqy
tag
Sziasztok!
Van valakinek ötlete, hogy ebben a programban mi okozhatja az Error creating Device hibát?
(nem én írtam, csak használni szeretném)
Köszi! -
shinodas
tag
Köszönöm a válaszokat!
-
shinodas
tag
válasz
Jester01 #3339 üzenetére
Én arra lennék kíváncsi, hogy pl van egy *p pointerem, és egy tomb[10] tömböm. Beállítom, hogy p=tomb, megkapja a kezdőcímét a tömbnek, a pointer, ha jól tudom. De nem tudom, hogy konkrétan, hogyan néz ki az a kifejezés, aminél a pointert a kezdő címére állítom vissza. Egy saját függvényben, ahol csak a pointert "látom", a tömbböt nem, ott nem tudom.
Mit javasolnál ehelyett az algoritmus helyett?
-
shinodas
tag
Sziasztok!
Adott két tömb, amelyeket szeretnék összehasonlítani. Megszeretném számolni a két tömbben hány elem értéke egyezik meg. Ez megy is, örülök is neki, de szeretném pointerekkel ugyanezt. Ugye az elmélet az az, hogy veszi az egyik tömb 0. elemét, majd végig pörgeti a másik tömbbön, van e egyezés. Ha van, akkor növel egy számlálót, és az első tömb következő eleméhez lép. Persze ilyenkor a másik tömb 0. eleménél folytatná a következő körben. Na ez az ami nem megy, pointerekkel, hogyan mondom meg a pointernek, hogy "te most nullázad le magad!"?
-
raven12
senior tag
#include <iostream>
int main()
{
unsigned short int number;
std::cout << "Adjon meg egy számot 1 és 5 között: ";
std::cin >> number;
std::cout << "\nKöszönöm, feldolgozás...";
switch (number)
{
case 0:
std::cout << "Ez túl kicsi te marha!";
brake;
case 1:
std::cout << "Jóvan!";
brake;
case 2:
for ( ; number < 5; number++)
{
std::cout << "Pörgök!";
}
brake;
case 3:
std::cout << "Ez 3!";
brake;
case 4:
std::cout << "Ez 4!";
brake;
case 5:
std::cout << "Ez az 5!";
brake;
default:
std::cout << "Ez túl nagy hapsikám!";
brake;
}
std::cout << "Na jóvan azé má kiírok valamit";
return 0;
}Azt kapom hibaüzenetként, hogy a brake-k nincsenek deklarálva. "not declared in this scope"
Ha kiveszem az össze brake-t, akkor lefut a program. Mi lehet a hiba? Könyv szerint így kell... -
válasz
WonderCSabo #3333 üzenetére
ez azt hiszem akkor PHP -ban helyt állna! (abban gondolkoztam, sorry!)
-
Ricqy
tag
Sziasztok!
Csináltam egy Gondoltam egy számra játékot C-ben: [link], minden alap dolog benne van (írás, beolvasás, randomizálás, számolás, átalakítás...). -
-
shinodas
tag
A voidos és a (*pointer)++ kombináció megoldotta a probllémát! Nagyon szépen köszönöm!
Arról tudnátok néhány mondatot mondani, hogy, ha void van, akkor mi történik?
-
shinodas
tag
válasz
Jester01 #3320 üzenetére
Jester01: Tudom, hogy nem minden mássalhangzó, itt most csak ez a pointeres dolog lett volna a lényeg.
Egyébként a hibaüzenetek alapján próbálok elindulni, csak annyira kezdő vagyok, hogy valamikor nem mond semmit nekem.
(*magan_p)++; ezt nem is tudtam pl, köszönömkingabo: A voidot kipróbálom, ezt sem gondoltam volna.
Egyébként szerintem ez a probléma, hogy csak úgy magamtól, netről próbálom tanulni, nincs egy könyvem, ami alapján haladhatnék. :S
Köszönöm a válaszokat /tippeket! Este beszámolok, mire jutottam
-
kingabo
őstag
válasz
shinodas #3318 üzenetére
Egyrészt az fv meghívásakor a visszatérési értéket semmilyen változónak nem adod értékül, másrészt a 2 return nem tud végrehajtódni, ugyanis már első után befejeződik a függvény. Jelen esetben a függvényednek void-nak kéne lennie, és nem kell a végére return.
Egyébként a problémádra itt #4 JackOfAllTrades hsz-e mutat egy pl-t, erre a megoldásra céloztam fentebb.
Korábban a pointerekről írtam ide egy hosszabb hsz-t, igaz a paraméter átadás nem volt része, keresővel sztem hamar megtalálod.
Egyébként könyvből tanulsz, netes cikkből, vagy megpróbálsz rájönni hogy mennek a dolgok? Az idők folyamán elég sok könyv, jegyzet, példatár lett itt linkelve érdemes őket megnézni.
szerk: és még lassú is vagyok.
-
Jester01
veterán
válasz
shinodas #3318 üzenetére
A két return-nek nincs értelme.
A *magan_p++; pedig nem az értéket növeli, hanem a pointert. Helyesen (*magan_p)++; MOD: illetve a talán olvashatóbb *magan_p += 1; forma. Nyilván ugyanez vonatkozik a massal_p-re is.Érdemes a fordító figyelmeztető üzeneteit bekapcsolni és átgondolni. Jelen esetben például:
t.c: In function 'massal_magan':
t.c:86: warning: value computed is not used
t.c:89: warning: value computed is not used
t.c:96: warning: will never be executedJa egyébként nem minden mássalhangzó ami nem magánhangzó (például a szóköz, számok, írásjelek)
-
shinodas
tag
Ennek így nem kellene vissza adni az értéket rendesen?
#include <stdio.h>
#include <stdlib.h>
int massal_magan (char result[], int *magan_p, int *massal_p);
int main()
{
char string1[10];
char string2[10];
char result[20];
int i=0;
int r=0;
int maganhangzo=0;
int massalhangzo=0;
int *magan_p=0;
int *massal_p=0;
magan_p = &maganhangzo;
massal_p = &massalhangzo;
printf("Kérem adjon meg egy szót!\n");
scanf("%s", string1);
printf("Kérem adjon meg egy újabb szót!\n");
scanf("%s", string2);
//kis és nagybetűs átalakítás
for(i=0;string1[i]!='\0';i++)
{
if(string1[i]>=65 && string1[i]<=90)
{
string1[i]=string1[i]+32;
}
}
string1[0]=string1[0]-32;
for(i=0;string2[i]!='\0';i++)
{
if(string2[i]>=65 && string2[i]<=90)
{
string2[i]=string2[i]+32;
}
}
string2[0]=string2[0]-32;
i=0;
//összefűzés
while(string1[i]!='\0')
{
result[r]=string1[i];
r++;
i++;
}
result[r++]=' ';
i=0;
while(string2[i]!='\0')
{
result[r++]=string2[i];
i++;
}
result[r]='\0';
printf("Az összefűzött string: %s\n", result);
massal_magan(result, magan_p, massal_p);
printf("Mássalhangzók száma: %d\n", *massal_p);
return 0;
}
//SAJÁT FÜGGVÉNYEK
int massal_magan(char result[], int *magan_p, int *massal_p)
{
int i=0;
while(result[i]!='\0')
{
switch(result[i])
{
case 'a':
case 'e':
case 'o':
case 'i':
case 'u':
case 'A':
case 'E':
case 'O':
case 'I':
case 'U':
*magan_p++;
break;
default:
*massal_p++;
break;
}
i++;
}
return *magan_p;
return *massal_p;
}Mert olyan, mintha nem adná vissza...
Esetleg tudtok mutatni egy leírást, hogy ne itt kérdezzek hülyeségeket?Konkrétan erre a problémára nem találtam a google-ben választ, bár biztos van, csak rossz helyen keresem
-
kingabo
őstag
válasz
shinodas #3314 üzenetére
A magan és a massal az miért 1-1 pointer? De ha már pointer, akkor miért nem egy létező memória területre mutatnak: másik változó, vagy általad lefoglalt memória terület?
Régen c-ztem már, de sztem a pointer helyett, mintha egy referenciát kéne átadni és akkor nem kell szenvedned a pointerezéssel. Amit -nem sértésként- de nem igazán értesz... -
kispx
addikt
válasz
shinodas #3314 üzenetére
A függvényed így néz ki:
int massal_magan (char result[], int *magan, int *massal)
Tehát második paraméterként egy int-re mutató pointert vár.A függvényhívásod így néz ki:
int *magan=0;
//...
massal_magan(result, *magan, massal);A második paraméternél a mutatott objektumot adtad át és nem a rá hivatkozó pointert.
Röviden nem kell az índirekció művelete. ( * )Szerk.: de érdekes, hogy a 3. paraméternél jól használtad a mutatót.
-
shinodas
tag
Sziasztok! Kellemes pénteket mindenkinek!
Remélem nem probléma, hogy rengeteg kérdésem van, szóval itt egy újabb.
#include <stdio.h>
#include <stdlib.h>
int massal_magan (char result[], int *magan, int *massal);
int main()
{
char string1[10];
char string2[10];
char result[20];
int i=0;
int r=0;
int *magan=0;
int *massal=0;
printf("Kérem adjon meg egy szót!\n");
scanf("%s", string1);
printf("Kérem adjon meg egy újabb szót!\n");
scanf("%s", string2);
//kis és nagybetűs átalakítás
for(i=0;string1[i]!='\0';i++)
{
if(string1[i]>=65 && string1[i]<=90)
{
string1[i]=string1[i]+32;
}
}
string1[0]=string1[0]-32;
for(i=0;string2[i]!='\0';i++)
{
if(string2[i]>=65 && string2[i]<=90)
{
string2[i]=string2[i]+32;
}
}
string2[0]=string2[0]-32;
i=0;
//összefűzés
while(string1[i]!='\0')
{
result[r]=string1[i];
r++;
i++;
}
result[r++]=' ';
i=0;
while(string2[i]!='\0')
{
result[r++]=string2[i];
i++;
}
result[r]='\0';
printf("Az összefűzött string: %s\n", result);
massal_magan(result, *magan, massal);
return 0;
}
//SAJÁT FÜGGVÉNY
int massal_magan(char result[], int *magan, int *massal)
{
int i=0;
while(result[i]!='\0')
{
switch(result[i])
{
case 'a':
case 'e':
case 'o':
case 'i':
case 'u':
case 'A':
case 'E':
case 'O':
case 'I':
case 'U':
*magan++;
break;
default:
*massal++;
break;
}
i++;
}
return *magan, *massal;
}A gondom az értékátadással van, hogy megakarom számoltatni, a magán és mással hangzókat, ezeknek az értékét pedig pointerekkel visszaadni. Hogyan kellene ezt helyesen? A másik kérdésem pedig, hogy Mikor számolom a magánhangzókat, az ékezetes karakterekre hibát dob, mármint, pl case 'é'-re, gondolom valami kódolási gubanc, ezt hogyan lehetne kiküszöbölni?
Btw, itt főleg a 3. sorral van gondja a fordítónak, a függvénydeklarációnál -
Korcsii
őstag
-
shinodas
tag
Egy olyan kérdésem lenne, hogy, ha írok egy sajátfüggvényt, és az két értéket adna vissza, mikor meghívom a függvényemet, azt meghívásnál, hogy néz ki? Tehát pl return x,y; és ezt meghívásnál, hogy jelölöm, ha adott résznél nekem csak az x változó kéne ott? Remélem nem túl zavarosan fogalmazok, ha mégis, akkor bocsi
-
shinodas
tag
#include <stdio.h>
#include <stdlib.h>
int main()
{
char string1[10];
char string2[10];
char result[20];
int r=0, n=0;
printf("Kérek egy szót!\n");
scanf("%s",string1);
printf("Kérek egy szót!\n");
scanf("%s",string2);
for(n=0;string1[n]!='\0';n++)
{
result[r]=string1[n];
r++;
}
result[r++]=' ';
for(n=0;string2[n]!='\0';n++)
{
result[r]=string2[n];
r++;
}
result[r]='\0';
printf("%s", result);
return 0;
}Működik, én voltam a balf@sz
Köszi mindenkinek!
-
shinodas
tag
Sziasztok!
Írtam gyakorlásnak egy ilyen kis egyszerű dolgot, amit el akartam érni: kérjen be két szót, tárolja 2 stringbe, majd egy harmadikba fűzze össze a kettőt. A problémám, hogy a két szó közé akarnék egy spacet beerőltetni, de nem akar működni úgy. Mit nézek el?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char string1[10];
char string2[10];
char result[20];
int r=0, n=0;
printf("Kérek egy szót!\n");
scanf("%s",string1);
printf("Kérek egy szót!\n");
scanf("%s",string2);
for(n=0;string1[n]!='\0';n++)
{
result[r]=string1[n];
r++;
}
for(n=0;string2[n]!='\0';n++)
{
result[r]=string2[n];
r++;
}
r++;
result[r]='\0';
printf("%s", result);
return 0;
}
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Kerékpárosok, bringások ide!
- Xiaomi 15 Ultra - kamera, telefon
- Okos Otthon / Smart Home
- Xiaomi Mi 11 Ultra - Circus Maximus
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Magga: PLEX: multimédia az egész lakásban
- Kazy Computers - Fehérvár - Megbízható?
- A fociról könnyedén, egy baráti társaságban
- Kínai és egyéb olcsó órák topikja
- Hardcore café
- További aktív témák...
- HP Zbook 14 laptop (14FHD/I7-G5/8GB/128SSD/MagyarVilágítós)
- Jó áron ÁRON ELADÓ! Üzleti HP Elitebook 1040 G9 Laptop! / i5-1245U 16GB 256GB
- Szuper áron DELL XPS 13 7390 /i7-10510U/16 GB Ram/512 GB SSD/IPS/
- ÁRESŐ! Dell Inspiron 3493 /10.gen i5-1035G1/8GB/512 GB SSD FHD
- Akciós áron eladó HP Elitebook 845 G7 / AMD Ryzen 5 pro-4650U/16 GB/256 SSD/14"/FHD/IPS/Gari/touch
- AKCIÓ! Apple MacBook PRO 15" 2018 i9 32GB 500GB 560X 4GB notebook garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i9 14900KF 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Eladó ÚJ, BONTATLAN Samsung Galaxy A05s 4/64GB ezüst / 12 hónap jótállással!
- Beszámítás! Apple iPad 11 2025 128GB WiFi tablet garanciával hibátlan működéssel
- Bowers/Wilkins Px7 S2 fejhallgatók
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest