somebody please explain about strings in c? -


how store 2 strings 1 after other without concatenation (we can increment address)

char str[10]; scanf("%s",str); str=str+9; scanf("%s",str); 

note: here if give first string bala , 2nd hi, should print hi after bala . hi should not replace bala.

you cannot increment (or change in other way) array that, array variable (str) constant cannot changed.

you can so:

char str[64];  scanf("%s", str); scanf("%s", str + strlen(str)); 

this first scan str, scan once more, starting new string right on top of terminating '\0' of first string.

if enter "bala" first, beginning of str this:

     +---+---+---+---+----+ str: | b | | l | | \0 |      +---+---+---+---+----+ 

and since strlen("bala") four, next string scanned buffer starting right on top of '\0' visible above. if enter "hi", str start so:

     +---+---+---+---+---+---+----+ str: | b | | l | | h | | \0 |      +---+---+---+---+---+---+----+ 

at point, if print str print "balahi".

of course, very dangerous , introduce buffer overrun, that's wanted.


Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -