| Autor | Správa |
namorblade3
 Užívateľ
 Založený: 04.12.2011 Príspevky: 4
 | Zaslal: Ne 04.12.11 15:12 |   |
mam retazec nahodne vygenerovaneho slova a ked zadam niake pismeno tak aby mi ukazalo na akom mieste sa nachadza , popripade ked tam bude viac rovnakych pismen tak tiez ukaze a ostatne zamaskuje napriklad znakom "_" alebo "*"
neviete mi prosim poradit ako by som to spravil ? |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1049
 | Zaslal: Ne 04.12.11 15:35 |   |
1.) troska pribliz, ako to myslis. Je to nejako takto, ze mas retazec nap:
| citácia: | | "sfjfispokpaascmew" |
a ak zo vstupu nacitas trebars znak 'k', tak ma vypisat poradie, kde v retazci sa nachadza ( kazdy vyskyt ) ?
2. ) ukaz kod, ktory zatial mas, z neho budeme pokracovat |
| |
   |
 |
street_punk
 Užívateľ
 Založený: 09.04.2011 Príspevky: 237 Bydlisko: Kesa Vek: 22
 | Zaslal: Ne 04.12.11 15:48 |   |
Keď som to správne pochopil, tak si zadáš reťazec a následne nato písmeno, ktoré chceš hľadať. Potom si spravíš cyklus s 2 poliami (2. bude pomocné) a každý prvok v tom poli (reťazci) budeš porovnávať stým písmenom. Dáš tam jednu podmienku, že keď sa dané slovo v poli rovná tvojmu hľadanému, tak index poľa predáš pomocnému poľu a index pomocného poľa zvýšiš o 1. Ale pozor, index pomocného poľa budeš zvyšovať len vtedy, keď bude platná podmienka. A potom už len vypíšeš to pomocné pole, kde budú uložené indexi tvojho hľadaného slova.
A v tom druhom prípade si nemusíš vytvárať nijaké pomocné pole, skrátka dáš podmienku, že keď sa prvok v poli nerovná tvojmu hľadanému písmenu, tak ho prepíš na _ alebo * |
_________________ NB - HP Pavilion DV7 3190 -- Windows® 7 Home Premium 64-bit -- Intel® Core™ i7-720QM 1,6 GHz az 2,8 Ghz Turbo Boost, 6 MB pamäte cache úrovne 2 -- 4 GB DDR3 -- disk 640 GB SATA 5400 ot/min -- rozlíšenie 1600 x 900 -- NVIDIA® GeForce® GT 230M -- 2 815 MB grafickej pamäte s vyhradenou pamäťou 1 GB DDR3 -- pripojenie 802.11 a/b/g/n | |
  |
 |
namorblade3
 Užívateľ
 Založený: 04.12.2011 Príspevky: 4
 | Zaslal: Ne 04.12.11 17:08 |   |
| citácia: | Keď som to správne pochopil, tak si zadáš reťazec a následne nato písmeno, ktoré chceš hľadať. Potom si spravíš cyklus s 2 poliami (2. bude pomocné) a každý prvok v tom poli (reťazci) budeš porovnávať stým písmenom. Dáš tam jednu podmienku, že keď sa dané slovo v poli rovná tvojmu hľadanému, tak index poľa predáš pomocnému poľu a index pomocného poľa zvýšiš o 1. Ale pozor, index pomocného poľa budeš zvyšovať len vtedy, keď bude platná podmienka. A potom už len vypíšeš to pomocné pole, kde budú uložené indexi tvojho hľadaného slova.
A v tom druhom prípade si nemusíš vytvárať nijaké pomocné pole, skrátka dáš podmienku, že keď sa prvok v poli nerovná tvojmu hľadanému písmenu, tak ho prepíš na _ alebo * |
ano dobre si pochopil , asi to spravim teda takto , a nexistuje aj niaky iny sposob ako by sa to dalo ?
skusal som to takto ale stale mi to robi niake blbosti a neviem preco |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1049
 | Zaslal: Ne 04.12.11 17:53 |   |
| kód: | #include <stdio.h>
#include <string.h>
int main()
{
char input[] = "Toto je retazec, ktory zobrazi iba pozadovane znaky";
char result[255];
char c = 'o';
int i = 0;
strcpy( result, input );
while ( result[i] != '\0' )
{
if ( ( result[i] != c ) && ( result[i] != ' ' ) )
result[i] = '*';
i++;
}
printf( "\nResult is: \"%s\"\n", result );
return 0;
} |
|
| |
   |
 |
namorblade3
 Užívateľ
 Založený: 04.12.2011 Príspevky: 4
 | Zaslal: Po 05.12.11 13:54 |   |
diki moc , a ako by som to spravil pre viac opakovani ? tento cyklus aby sa tolkokrat zopakoval kolko je pismen v slove |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1049
 | Zaslal: Po 05.12.11 22:38 |   |
Nepochopil som, ako to myslis. V akom slove? |
| |
   |
 |
namorblade3
 Užívateľ
 Založený: 04.12.2011 Príspevky: 4
 | Zaslal: Po 05.12.11 23:45 |   |
tak ten program co si mi napisal je pre najdenie jedneho znaku z retazca , ale potreboval by som to este zdokonalit aby sa to dalo pre vsetky znaky , skusal som rozne cykly a niak mi to nejde
kde tu mam chybu ?
ide mi to iba pre jeden znak ale potreboval by som pre vsetky
| kód: | pocet = (strlen(slovo));
if (m=pocet)
{
m++;
printf("\n\n uhadni prismeno :\n");
scanf("%c" , &pismeno);
strcpy( maska , slovo );
while ( maska[i] != '\0' )
{
if ( ( maska[i] != pismeno ) && ( maska[i] != ' ' ) )
maska[i] = y ;
i++;
}
} |
|
| |
  |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
|