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


Groups > comp.lang.c > #111466

Re: Parsing based on 1st and 2nd spaces in a string

From "Pascal J. Bourguignon" <pjb@informatimago.com>
Newsgroups comp.lang.c
Subject Re: Parsing based on 1st and 2nd spaces in a string
Date 2017-06-04 15:53 +0200
Organization Informatimago
Message-ID <m2tw3vamfr.fsf@despina.home> (permalink)
References <oh0ro2$12p$1@dont-email.me>

Show all headers | View raw


DFS <nospam@dfs.com> writes:

> I have text input in only two formats:
>
> Value line goes like this...
> # Value line goes like this...
>
> Value is of varying lengths, but never > 20.
> # is always numeric, and never exceeds 9.
>
> Goal is to capture Value and '# Value'
>
> I'm currently using a combination of strchr() and isdigit(), which
> works fine, but I'm wondering if there's a better way to handle the
> lines that begin with '# Value'.
>
> current code is:
> -----------------------------------------------------------
> if (!isdigit(line[0]))
>  {	// no leading digit so parse on 1st space
> 	strncpy(thevalue, line, strchr(line, ' ') - line);
>  }
> else
>  index=(strchr(line,' ')-line)+1;  //get position of 1st space
>  for(i=index;i<30;i++)		   //find and parse on 2nd space	
>  {
> 	if(line[i] == ' ')
> 	{	strncpy(thevalue, line, i);
> 		break;
> 	}
>  }
> -----------------------------------------------------------
>
> Ideas or suggestions?

You have a third case that you didn't specify:

#Value


    if(isdigit(line[0]) && isspace(line[1])){
       parse_digit_and_value(line);
    }else if(isdigit(line[0])){
       parse_error(line,"Invalid syntax");
    }else{
       parse_value(line);
    }


-- 
__Pascal J. Bourguignon
http://www.informatimago.com

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


Thread

Parsing based on 1st and 2nd spaces in a string DFS <nospam@dfs.com> - 2017-06-04 07:48 -0400
  Re: Parsing based on 1st and 2nd spaces in a string "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-06-04 15:53 +0200
    Re: Parsing based on 1st and 2nd spaces in a string DFS <nospam@dfs.com> - 2017-06-04 10:29 -0400
      Re: Parsing based on 1st and 2nd spaces in a string "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-06-04 21:52 +0200
        Re: Parsing based on 1st and 2nd spaces in a string DFS <nospam@dfs.com> - 2017-06-04 16:43 -0400
      Re: Parsing based on 1st and 2nd spaces in a string Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-06-04 22:39 +0100
        Re: Parsing based on 1st and 2nd spaces in a string Keith Thompson <kst-u@mib.org> - 2017-06-04 19:40 -0700
        Re: Parsing based on 1st and 2nd spaces in a string DFS <nospam@dfs.com> - 2017-06-05 00:08 -0400
          Re: Parsing based on 1st and 2nd spaces in a string raltbos@xs4all.nl (Richard Bos) - 2017-06-05 08:52 +0000
            Re: Parsing based on 1st and 2nd spaces in a string Robert Wessel <robertwessel2@yahoo.com> - 2017-06-05 23:51 -0500
          Re: Parsing based on 1st and 2nd spaces in a string Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-06-05 12:37 +0100
          Re: Parsing based on 1st and 2nd spaces in a string "James R. Kuyper" <jameskuyper@verizon.net> - 2017-06-05 12:53 -0400
  Re: Parsing based on 1st and 2nd spaces in a string Barry Schwarz <schwarzb@dqel.com> - 2017-06-04 11:24 -0700
    Re: Parsing based on 1st and 2nd spaces in a string DFS <nospam@dfs.com> - 2017-06-04 16:43 -0400

csiph-web