Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 07. 02. 2011 17:56

misaj
Zelenáč
Příspěvky: 22
Reputace:   
 

Vyhledání znaku v řetězci - C

Dobrý den, měla jsem napsat program, který v řetězci najde znak. Používám Code Blocks a když se dostanu k tomu, že bych měla zadat řetězec, program se mi vypne. Netušíte, v čem by mohla být chyba? Předem děkuji
#include <stdio.h>
#define MAX 100

int main(void)
{
    char s[MAX], z;
    int i,c;
   printf("Zadejte hledany znak\n");
   z=getchar();
   printf("Zadejte reteyec, ve kterem chcete hledat\n");
   while ((c=getchar())!= '@')
   {
       s[i++]=c;
   }
   s[i]='0';
   printf("i", any (s,z)) ;

}

any(s1,z)
char s1[],z;
{
    int i;

    for(i=0; s1[i]!=z; ++i)
    ;
    return (i+1);

}

Offline

  • (téma jako vyřešené označil(a) misaj)

#2 07. 02. 2011 18:33

hradecek
Příspěvky: 772
Pozice: Student
Reputace:   25 
Web
 

Re: Vyhledání znaku v řetězci - C

↑ misaj:
Čo sa nachádza v premennej $i$ ?
Chybová hláška:

Code:

The variable 'i' is being used without being initialized.

Netrápte sa nad svojimi problémami s matematikou, môžem vás uistiť, že tie moje sú ešte väčšie. ~~Albert Einstein~~
Jak spozná člověk, že není pitomec ? - Moudrý člověk to nepozná nikdy a blbci je to jedno. ~~Jak přicházejí básnici o iluze~~
Někteří lidi se nikdy nezmění. Anebo se rychle změní a pak se zase rychle změní nazpátek. ~~Homer Simpson~~

Offline

 

#3 07. 02. 2011 18:35 — Editoval misaj (07. 02. 2011 18:40)

misaj
Zelenáč
Příspěvky: 22
Reputace:   
 

Re: Vyhledání znaku v řetězci - C

↑ hradecek:
děkuji, to byla chyba., už jsem to opravila.
ještě jsem tan našla jednu chybu. ted vše funguje, děkuji moc

Offline

 

#4 07. 02. 2011 18:43

perdy
Místo: Praha
Příspěvky: 116
Reputace:   
 

Re: Vyhledání znaku v řetězci - C

Code:

   while ((c=getchar())!= '@')
   {
       s[i++]=c;
   }

Tu si koleduješ o riadny prúser, čo ak užívateľ zadá reťazec dlhší ako MAX? Mimochodom ukončovať dáta zavináčom je...netradičné.

Offline

 

#5 07. 02. 2011 18:48

hradecek
Příspěvky: 772
Pozice: Student
Reputace:   25 
Web
 

Re: Vyhledání znaku v řetězci - C

↑ misaj:
Mne funguje tiež...ale zrejme si tu chcela mať toto:

Code:

s[i]='0';
printf("%i", any (s,z)) ;

Netrápte sa nad svojimi problémami s matematikou, môžem vás uistiť, že tie moje sú ešte väčšie. ~~Albert Einstein~~
Jak spozná člověk, že není pitomec ? - Moudrý člověk to nepozná nikdy a blbci je to jedno. ~~Jak přicházejí básnici o iluze~~
Někteří lidi se nikdy nezmění. Anebo se rychle změní a pak se zase rychle změní nazpátek. ~~Homer Simpson~~

Offline

 

#6 07. 02. 2011 19:12

misaj
Zelenáč
Příspěvky: 22
Reputace:   
 

Re: Vyhledání znaku v řetězci - C

↑ perdy:
Tak nějako délku toho řetězce jsem zadat musela. Jinak jsem se nějak nedokázala poprat s ukončováním pomocí EOF, prostě mi to nefungovalo (měla jsem to nastaveno na -1). Proto to ukončuji zavináčem, jsou to programy jenom pro mě..

Offline

 

#7 07. 02. 2011 19:13

misaj
Zelenáč
Příspěvky: 22
Reputace:   
 

Re: Vyhledání znaku v řetězci - C

↑ hradecek:
Ano, to byla tadalší chyba, kterou jsem tam měla

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson