C, Hledání substringu v stringu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C, Hledání substringu v stringu – C / C++ – Fórum – Programujte.comC, Hledání substringu v stringu – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Spuštěný nový filmový web Filmožrouti.cz — vše o Avengers, Pacific Rim, Thor, Star Wars…
EaZy0
Duch
15. 12. 2017   #1
-
0
-

Zdravím,

potřeboval bych pomoc s napsáním kódu, který vyhledá text v textu, kde se nerozlišuji velká a malá písmena a řekne mi pozici, kde se text nachází, popřípadě několik pozic pokud se tam hledaný text objevuje několikrát. Prakticky mám dva řetězce, oba dynamicky alokoji (realokuji). Do prvního řetězce načítám normálně text a do druhého načítám pak hledaný text. Zkoušel jsem knihovní funkci strcasestr, ale ta mi dělala problém, když jsem napsal  do  1 řetězce (Ahoj jak je) a do druhého jen (je), tak mi to v textu slovo "je" nenašlo, ale když jsem chtěl hledat jen (ahoj), tak mi to daný text našlo. 

Následně jsem zkusil prohledat text přes for cyklus a pointery, kde jsem ale narazil na problém s velkými a malými písmeny.

Teď si nejsem jistý jakým směrem bych se měl dále vydat. Byl bych rád kdyby jste mě dokázali nasměrovat správným směrem. Děkuji

Nahlásit jako SPAM
IP: 88.101.110.–
15. 12. 2017   #2
-
0
-

Prohledat pomocí cyklu je správná cesta, akorát se podívej, jak se v ASCII tabulce liší malá a velká písmena. Buď oba řetězce nejdříve zkonvertuješ např na malá písmena nebo to vyřešíš až při porovnávání.

hu

Nahlásit jako SPAM
IP: 193.86.81.–
EaZy0
Duch
15. 12. 2017   #3
-
0
-

Vážně by to nešlo pouze pomocí knihovní funkce + nějaké úpravy? Už takhle jsem upravoval mezní hodnoty jen aby se mi načítali písmena pomocí ASCII tabulky a nejsem si jist, jestli vím, jak zkonvertovat globálně oba řetězce při úpravě na malá písmena.

Nahlásit jako SPAM
IP: 88.101.110.–
KIIV
~ Moderátor
+43
God of flame
15. 12. 2017   #4
-
+1
-
Zajímavé

#3 EaZy
toupper() tolower() - musi se akorat po znacich, takze nejaky loop.

Nicmene me strcasestr normalne funguje (potrebuje akorat zapnout _GNU_SOURCE definici pro gcc, nebo nahodit spravny prototyp)

Nahlásit jako SPAM
IP: 81.30.230.–
Program vždy dělá to co naprogramujete, ne to co chcete...
EaZy0
Duch
16. 12. 2017   #5
-
0
-

#4 KIIV
Super moc děkuji. Napsal jsem si dvě funkce ve kterých používám toupper a strcasestr. Šel jsem to zkusit a pořád mi to nefungovalo, tak jsem zkusil vždycky před cyklem vyprázdnit daný řetězec a už to šlape.

Nahlásit jako SPAM
IP: 88.101.110.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 85 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý