[ Fidelito_Castro @ 31.10.2007. 15:35 ] @
E ovako imam problem!
Zelim da omogucim da se unese ime a ako se pokusa uneti neki broj da se ispise greska!

Code:

/*Program koji ispisuje vase ime na ekranu */

#include<stdio.h>
#define IME 25



void main()
{
    char a[IME];
    int broj;

    printf("Unesite vase ime:");
    scanf("%s",&a);
    fflush(stdin);

    if(a==broj)
    {
        printf("Uneli ste pogresno ime=%s\a\n",a);
    }
    else
    {
        printf("Vase ime je=%s\n",a);
        }

}
[ X Files @ 31.10.2007. 18:15 ] @
Na primer:
Code:

bool ima_li_brojeva_u_stringu( const char* text )
{
   char current;
   while ( current = *text++ )
      if ( current >= '0' && current <= '9' )
         return ( true );
   return ( false );
}

...i u kodu:
Code:

// ...
if ( ima_li_brojeva_u_stringu( a ) )
// ... ima
else
// ... nema 
// ...


P.S.

U C jeziku, main treba da bude jedno od sledećeg:
int main ( void )
int main ( int argc, char *argv[] )

U C++ jeziku, main treba da bude jedno od sledećeg:
int main ()
int main ( int argc, char *argv[] )


[Ovu poruku je menjao X Files dana 31.10.2007. u 19:42 GMT+1]
[ Fidelito_Castro @ 31.10.2007. 21:22 ] @
Jer mozes da mi pojasnis to malo za funkciju main().
Barem u jeziku C.Unapred zahvalan!
[ X Files @ 31.10.2007. 21:32 ] @
Zato što u najnovijem standardu tako stoji.

Iako će kompajleri radi kompatibilnosti sa prethodnim standardom prihvatiti i ono kako si ti napisao, dobro je znati kako piše u standardu jer u krajnjoj liniji nastavnik/profesor može da ostavi primedbu.

Razlika između int main() i int main(void) u C jeziku postoji. (ne odnosi se na C++)

Na primer:
int f();
... obično treba da znači da f() ne prima argumente.

Za razliku od C++, u C jeziku ovo znači da funkcija može da ima neodređeni broj argumenata. Da bi se to sprečilo, dodaje se void u zagradi.
[ markom @ 31.10.2007. 22:29 ] @
Citat:
int f();
... obično treba da znači da f() ne prima argumente.


Zar ovo nije malo gledanje u pasulj? Nije li lakše i u C++ definisati kao f(void)? Jel' sam spavao na času? :-)
[ X Files @ 01.11.2007. 09:30 ] @
Citat:

Nije li lakše i u C++ definisati kao f(void)? Jel' sam spavao na času? :-)

U C++ ne mora f(void), dovoljno je f() jer se ne može zloupotrebiti za razliku od C-a. Ne dozvoljava kompajler ;) C kompajler dozvoljava zloupotrebu

Iz standarda, u vezi main():

// C jezik
int main ( void )
int main ( int argc, char *argv[] )
(void služi naravno da ograniči moguće ponašanje i drugih C funkcija (po pitanju argumenata), a ne samo main-a)

// C++ jezik
int main ()
int main ( int argc, char *argv[] )

O ovakvim stvarima se obično u uslovima solo razvoja puno ne razmišlja. Kada se radi u nekoj ekipi, gde je neko zadužen samo za projektovanje interfejsa nekog podsistema, sve postaje važno: void, const, pointeri, reference , ... jer govori šta je projektant zapravo mislio.