Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Translate Perl to C

by Anonymous Monk
on Aug 05, 2001 at 22:12 UTC ( #102326=perlquestion: print w/replies, xml ) Need Help??

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Can you translate this Perl code to C ?

($header, $body) = split(/\n\n/, $CONFIG{'Variable'}, 2);
$header =~ /^Number: (.+)/m and $number = $1;

Thanks,
John

Replies are listed 'Best First'.
Re: Translate Perl to C
by nardo (Friar) on Aug 06, 2001 at 01:54 UTC
    In addition to strtok which was already mentioned, your platform may provide a regcomp function for regular expressions:
    #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <regex.h> int main(void) { char *header = "This is a sample header\nNumber: 12345\nThis is ano +ther line\n"; char *number = NULL; regex_t re; regmatch_t pmatch[2]; int retval; regcomp(&re, "^Number: (.+)", REG_EXTENDED | REG_NEWLINE); retval = regexec(&re, header, sizeof(pmatch)/sizeof(*pmatch), pmatc +h, 0); if(retval == 0 && pmatch[1].rm_so != -1) { size_t len = pmatch[1].rm_eo - pmatch[1].rm_so; number = malloc(len + 1); memcpy(number, header + pmatch[1].rm_so, len); number[len] = '\0'; printf("Number is %s\n", number); } else { printf("Match failed\n"); } regfree(&re); free(number); return 0; }
    No error checking is done and number is stored as a string, atoi()/strtol() family can turn it into an integer.
Re: Translate Perl to C
by John M. Dlugosz (Monsignor) on Aug 05, 2001 at 22:41 UTC
    If you are asking for equivilent meaning in a C program, check out strtok for the first, then use strncmp to verify the beginning of the string on the second line, and atoi to convert the number (no need to copy it out, just point it at the first digit).

    —John

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://102326]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2022-06-29 09:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My most frequent journeys are powered by:









    Results (96 votes). Check out past polls.

    Notices?