--- In [email protected], "peternilsson42" <[EMAIL PROTECTED]>
wrote:
>
> "int21h_d" <int21h_d@> wrote:
> >
> > can someone explain why the "thequickbrown..." doesnt
> > concatenates after the "hello world", that is, "hello
> > worldthequickbrownfox...." ???
>
> You _need_ to include certain headers before you can
> expect the code to work at all...
>
> #include <stdio.h>
> #include <string.h>
>
> If you don't then the signatures for the functions
> you use default to the wrong type.
>
> > int main(int argc, char *argv[])
>
> Not an error, but you only need...
>
> int main(void)
>
> > {
> >
> > char buff[80];
> > sprintf(buff, "hello world");
> > printf("%s\n", buff);
>
> More simply...
>
> char buff[80] = "hello world";
> puts(buff);
>
> > buff[strlen(buff)]=strcat
> > (buff,"thequickbrownfoxjumpsoverthelazydog");
>
> What do you expect this to do? You are attempting to
> assign a pointer to a character!
Exactly! buff[strlen(buff)] is a character of buff array...
Remember
char buff[80]="hello world!"; is different from
buff[60]="hello world!";
only the first one is legal.
>
> You probably didn't realise that because you didn't
> include the relevant header, so strcat defaults to...
>
> int strcat();
>
> ...instead of what it should be...
>
> char *strcat(char *, const char *);
>
> Had you included the header, the compiler is
> obliged to issue a diagnostic for the constraint
> violation of assigning a pointer to an integer.
>
> Note that the 1999 C standard requires named
> functions to be declared before use.
>
> > printf("%s\n", buff);
> > getch();
>
> Non standard function that has a perfectly useable
> standard alternative, namely getchar(). That said,
> learn to run your programs from a DOS emulator,
> rather than from IDE that closes the window when
> the program finishes.
>
> > return 0;
> > }
>
> It makes no sense to talk about why a broken program
> didn't work. Undefined behaviour means _anything_
> can happen.
>
> Curiosity is a useful trait, but I'd rather spend two
> hours writing useful code that works, than two hours
> studying why a broken piece of code happens to behave
> a certain way, on a specific machine, on a specific
> compiler, at a specific time of day, and phase of the
> moon... ;-)
>
> --
> Peter
>
Ciao,
Ajinkya