Kezdőoldal » Számítástechnika » Programozás » Hogyan lehetne megírni egy...

Hogyan lehetne megírni egy ilyen függvényt? (C programozás)

Figyelt kérdés

bool tartalmaz(const char* tesztszo, const char* alapszo){

return false;

}


Akkor adjon vissza igazat(true), hogyha a tesztszó az összes betűjét felhasználta az alapszónak, ezen kívül lehet benne más is. Pl. ha a tesztszó PirosalMApaprika, az alapszó pedig alma, akkor igazat ad vissza. Kis- és nagybetűk ne zavarják meg a programot.


Előre is köszönöm.



2021. jan. 20. 21:11
1 2
 1/17 anonim ***** válasza:
23%
Biztos, hogy jól van definiálva az a függvény mert szerintem karaktersorozatot kéne hogy várjon a Függvény nem egy karaktert de lehet hogy én vagyok hülye a c hez.
2021. jan. 20. 22:08
Hasznos számodra ez a válasz?
 2/17 anonim ***** válasza:
82%
Teljesen felesleges ilyen függvényt írni, ugyanis a string.h tartalmaz ilyet.
2021. jan. 20. 22:08
Hasznos számodra ez a válasz?
 3/17 anonim ***** válasza:
100%
#1: az a függvény jól van definiálva, ugyanis a char-ra mutató pointer az lényegében megegyezik a sztringgel így.
2021. jan. 20. 22:09
Hasznos számodra ez a válasz?
 4/17 anonim ***** válasza:
68%

Értem, utána olvastam szóval ez egy karaktersorozatnak az első karakterére mutató pointer lesz.


Csak azt nem értem akkor hogy kiíratáskor miért az egész karaktersorozatot írasa ki mikor a legelső elemre mutató mutatót eredményez.

2021. jan. 20. 22:22
Hasznos számodra ez a válasz?
 5/17 A kérdező kommentje:
#2, melyik függvény az? Én nem találtam ilyet.
2021. jan. 20. 22:26
 6/17 anonim ***** válasza:
100%

#4. Azért, mert ez egy tömb, és a kiíró addig írja, amíg 0-t nem talál.

Ha valamiért nem szabályos sztring lenne, azaz nem lenne 0 a végén, akkor be is halna a program.

kérdező: ctype-pal for ciklussal nagybetűsíted őket, aztán strstr függvény.

Technikailag bármi ami nem 0 az true, így a visszaadott pointer is true ha talált, false ha nem.

2021. jan. 20. 22:42
Hasznos számodra ez a válasz?
 7/17 anonim ***** válasza:
51%
Nemtudom kérdező melyikre gondolt a válaszoló de megtalálod a string.h belül ha van ilyen. A doksiban keresd meg.
2021. jan. 20. 22:42
Hasznos számodra ez a válasz?
 8/17 anonim ***** válasza:
51%
Fura nekem a c de már értem.
2021. jan. 20. 22:45
Hasznos számodra ez a válasz?
 9/17 A kérdező kommentje:

Eddig jutottam. A nagybetűkre való átváltást nem sikerült megcsinálnom strupr() fügvénnyel. Valaki ezzel ki tudná nekem egészíteni? :o


bool tartalmaz(const char* tesztszo, const char* alapszo){

char *egyezes;

int len;

egyezes=strstr(alapszo, tesztszo);

len=strlen(egyezes);

if(len>0)

{

return true;

}

else

{

return false;

}

}

2021. jan. 20. 23:02
 10/17 anonim ***** válasza:
100%

Ebben a fejlécben találhatók az ami neked kell:


[link]

int toupper(int c); // nagybetűsre konvertál egy karaktert

int isupper(int c); // lecsekkolja hogy egy karakter nagybetüs e vagy sem


Ez a sor nem kell:

len=strlen(egyezes);


Ez pedig visszaad egy null mutatót ha nem találta meg az egyik szóban a másikat ezért csak csekkold le hogy null e vagy sem:

egyezes=strstr(alapszo, tesztszo); /* ha van egyezes akkor "egyezes" nem lesz null*/


if(egyezes != null)

return true


Nagybetűkre átváltod:

char* GetBigString(char* str) {

int len = strlen(str);

for(int i = 0; i < len; ++i)

if(!isupper(*(str+i)))

*(str+i) = toupper(*(str+i));

return str;


Nemtom hogy jó e ez így soha nem használtam c nyelvet.

2021. jan. 21. 01:03
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!