Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #16998

Re: Replacing NULLS with space (C strings)

From James Kuyper <jameskuyper@verizon.net>
Newsgroups comp.lang.c
Subject Re: Replacing NULLS with space (C strings)
Date 2012-02-09 16:15 -0500
Organization A noiseless patient Spider
Message-ID <4F343784.8010007@verizon.net> (permalink)
References <jh19o6$qnl$1@speranza.aioe.org> <878vkbbtwi.fsf@huddi.jernurt.dk>

Show all headers | View raw


On 02/09/2012 04:04 PM, Anders Wegge Keller wrote:
> peter <pc722@nospam.mail.com.br> writes:
> 
>> In fact, I want to remove all NULLS and EOFs (0x1a)
>> from a string then replace them all with spaces. The way I do it
>> now is by using a for() loop:
>>
>>  for(temp=0;temp<=strlen(buffer);temp++)
>>    {
>>     if(buffer[temp]== '\0' || buffer[temp]==0x1A)
>>       {buffer[temp]=' ';}
>>    }
>  
>> Is there a faster / more efficient way of doing this? 
> 
>  strlen(buffer) will return the offset of the first '\0' encountered,
> so the code above doesn't make that much sense. Also, it is not very
> effecient to call strlen for each iteration of the loop.

I didn't notice that - that's embarrassing (not as embarrassing as
having written such code, but close). It's worse than merely being
horrendously inefficient; with the terminating null character being
replaced with ' ' inside the loop, followed by immediate recalculation
of the length of the supposedly null-terminated string, the loop will
never terminate until something goes very badly wrong (and possibly not
even then).

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Replacing NULLS with space (C strings) peter <pc722@nospam.mail.com.br> - 2012-02-09 20:19 +0000
  Re: Replacing NULLS with space (C strings) James Kuyper <jameskuyper@verizon.net> - 2012-02-09 15:46 -0500
  Re: Replacing NULLS with space (C strings) Anders Wegge Keller <wegge@wegge.dk> - 2012-02-09 22:04 +0100
    Re: Replacing NULLS with space (C strings) James Kuyper <jameskuyper@verizon.net> - 2012-02-09 16:15 -0500
  Re: Replacing NULLS with space (C strings) John Gordon <gordon@panix.com> - 2012-02-09 21:16 +0000
    Re: Replacing NULLS with space (C strings) Keith Thompson <kst-u@mib.org> - 2012-02-09 13:29 -0800
      Re: Replacing NULLS with space (C strings) Keith Thompson <kst-u@mib.org> - 2012-02-09 13:29 -0800
    Re: Replacing NULLS with space (C strings) pete <pfiland@mindspring.com> - 2012-02-09 19:22 -0500
      Re: Replacing NULLS with space (C strings) Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-09 16:36 -0800
        Re: Replacing NULLS with space (C strings) Keith Thompson <kst-u@mib.org> - 2012-02-09 17:27 -0800
          Re: Replacing NULLS with space (C strings) Kaz Kylheku <kaz@kylheku.com> - 2012-02-10 02:05 +0000
            Re: Replacing NULLS with space (C strings) Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-10 05:43 -0800
        Re: Replacing NULLS with space (C strings) Shao Miller <sha0.miller@gmail.com> - 2012-02-10 00:27 -0500
    Re: Replacing NULLS with space (C strings) Kenneth Brody <kenbrody@spamcop.net> - 2012-02-10 11:42 -0500
      Re: Replacing NULLS with space (C strings) John Gordon <gordon@panix.com> - 2012-02-10 16:51 +0000
    Re: Replacing NULLS with space (C strings) "christian.bau" <christian.bau@cbau.wanadoo.co.uk> - 2012-02-14 14:48 -0800
  Re: Replacing NULLS with space (C strings) Keith Thompson <kst-u@mib.org> - 2012-02-09 13:22 -0800
  Re: Replacing NULLS with space (C strings) Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-09 14:41 -0800
  Re: Replacing NULLS with space (C strings) Kenneth Brody <kenbrody@spamcop.net> - 2012-02-10 11:48 -0500
  Re: Replacing NULLS with space (C strings) Keith Thompson <kst-u@mib.org> - 2012-02-10 11:08 -0800
    Re: Replacing NULLS with space (C strings) Shao Miller <sha0.miller@gmail.com> - 2012-02-10 22:36 -0500

csiph-web