Problem s vypisanim retazca – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problem s vypisanim retazca – C / C++ – Fórum – Programujte.comProblem s vypisanim retazca – C / C++ – Fórum – Programujte.com

 

christo0
Duch
2. 12. 2016   #1
-
0
-

Nazdar.. mam mensi problem.Mám funkciu 

void get_guessed_word(const char secret[], const char letters_guessed[], char guessed_word[]){

  for(int i=0,len=strlen(secret);i<len;i++){
    guessed_word[i]='_';
  }
  for(int y=0,ylen=strlen(letters_guessed);y<ylen;y++){
    for(int z=0,zlen=strlen(secret);z<zlen;z++){
      if(letters_guessed[y]==secret[z]){
        guessed_word[z]=letters_guessed[y];
      }
    }
  }
  for(int i=0,len=strlen(guessed_word);i<len;i++){
    printf("%c",guessed_word[i]);
  }
}

Pri poslednom cykle for kde ma vypisat vsetky znaky z pola guessed_word tak mi po vypisani pola zacne vypisovat nejake divne znaky typu : o▒▒<▒▒▒;▒▒u▒Y▒`Eq▒;▒▒l▒0. Neviete co s tým? Skusal som pole vypisat tiez ako : printf("%s",guessed_word); ale robí mi to to iste.

Nahlásit jako SPAM
IP: 88.212.40.–
KIIV
~ Moderátor
+43
God of flame
2. 12. 2016   #2
-
0
-

#1 christo
Naprosta vetsina funkci pro praci s retezcem ocekava, ze bude ukoncen znakem '\0' (NUL character)

Pokud napriklad mas  char pole[] = "neco"; tak je to pole o velikosti 5 znaku a '\0' je vlozen automaticky kompilatorem. Jinak se totiz neda nijak zjistit delka retezce predaneho jako ukazatel.

No proste problem je pravdepodobne nekde mimo tu funkci.

Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
christo0
Duch
2. 12. 2016   #3
-
0
-

#2 KIIV

Funkcia je v podstate hra hangman. Mam tajne slovo a postupne ho hadam. Vsetko je zatial v nedokoncenej forme. Posielam funkciu main.

int main(){
    char guessed_word[100];
    get_guessed_word("slovo","s",guessed_word);
    return 0;
}

ako vidno z predchadzajucej funckie pole secret je v tomto pripade "slovo" pole guessed_letters je "s" a chcem vypisat guessed-word. No ale mam tam tu chybu. Zvlastne je to ze, ked chcem vypisat to pole tym istym sposobom vo funkcii main ako je napisane vo funkcii get_guessed_word, tak mi to ide bez problemov, ale ked dam ten isty cyklus do funkcie get_guessed_word tak uz mi robi tu sarapatu

Nahlásit jako SPAM
IP: 88.212.40.–
KIIV
~ Moderátor
+43
God of flame
2. 12. 2016   #4
-
0
-

#3 christo
muze byt nahoda nebo se to z nejakeho duvodu vynulovalo.

Kazdopadne musis nutne pridat ten znak \0 za  _______

  for(int i=0,len=strlen(secret);i<len;i++){
    guessed_word[i]='_';
  }
  guessed_word[len] = '\0';


Jinak to proste bude vypisovat smeti z pameti, dokud to nenarazi na \0

Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
christo
~ Anonymní uživatel
3 příspěvky
2. 12. 2016   #5
-
0
-

#4 KIIV
Dik moc uz to funguje ako ma.

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

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×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, 31 hostů

Podobná vlákna

NAhrada Retazca — založil Marek

Vyhladanie reťazca — založil Anonym

Nahrada retazca — založil Marek

C - vratenie retazca — založil olgo

Prepisovanie reťazca — založil Kent

Moderátoři diskuze

 

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