Help with sscanf


 
Thread Tools Search this Thread
Top Forums Programming Help with sscanf
# 1  
Old 12-30-2009
Help with sscanf

sscanf does not stop at the first "&". How can I extract "doe" ?
Code:
char A[50] = "name=john&last=doe&job=vacant&";

char B[10] = "last";

char C[10] = "";

char *POINTER = strstr(A, B);

sscanf(POINTER + strlen(B), "=%s%*[^&]", C);

printf("%s\n", C); // doe&job=vacant&

# 2  
Old 12-30-2009
That's because the %s in sscanf is creating problems so change it to...
Code:
sscanf(POINTER + strlen(B), "=%[^&]", C);

# 3  
Old 01-07-2010
in this example, i would recommend strtok() instead of scanf.
Oh, and you don't need to allocate memory for a string already in memory.
The token gets set to 0.

Code:
#include <stdio.h>
#include <strings.h>

int main()
{
char A[50] = "name=john&last=doe&job=vacant&";

char *name, *last, *job;

name = strtok( A, "&" );
last = strtok( (char *)0, "&" );
job = strtok( (char *)0, "&" );

printf("name: %s\n", name );
printf("last: %s\n", last );
printf("job:  %s\n", job );

return 0;
}

Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. Programming

Format specifier for sscanf() in C

Hello, I have formatted lines delimited by colon ":", and I need to parse the line into two parts with sscanf() with format specifiers. infile.txt: Sample Name: sample1 SNPs : 91 MNPs : 1 Insertions : 5 Deletions ... (13 Replies)
Discussion started by: yifangt
13 Replies

2. Programming

sscanf() weired behaviour

Hi with the following code int a, b; while ((n = readline (connfd, buf, sizeof(buf)-1)) > 0) { buf = '\0'; if (sscanf(buf,"%d %d",&a,&b) != 2) snprintf (buf, sizeof(buf), "data error\r\n"); else { printf("\nRecvd %d and %d",a,b); ... (1 Reply)
Discussion started by: princebadshah
1 Replies

3. Programming

using sscanf

How can I separetely extract the string and int after "dribble" ? (sscanf must limit TEXT to 9 chars to avoid buffer overflows.) How come this code does not work with "dribbletext08" but does with "dribbletext05" ? int main(void) { char TEXT = ""; int NUMBER = 0; ... (2 Replies)
Discussion started by: cyler
2 Replies

4. Programming

help with sscanf

I need to match a float inside a very long string (about 5000 chars) with sscanf. (I trimmed the string in this example.) I can't seem to match all the chars that come before and after the float. int main(void) { char A = ""; strcat(A, " hello world! WORD' name='5.3498' hello world! ... (1 Reply)
Discussion started by: limmer
1 Replies

5. Programming

help with sscanf()!

Hi everybody, i need help with this function, i'm programming in CGI with C and i can't make this work. QUERY_STRING is something like: user=MYUSER&pass=MYPASS So, what i want is to store the strings containing the username and the password into str1 and str2 respetively, here's the... (4 Replies)
Discussion started by: Zykl0n-B
4 Replies

6. Programming

sscanf !!

I have a string Form this string, I want to extract I am unable to do that with sscanf because of the space between the words. What else can I use? #include <stdio.h> char buf_2; int main() { char *buf_1 = "\\\\?\\whats going on"; sscanf(buf_1,... (4 Replies)
Discussion started by: the_learner
4 Replies

7. Programming

sscanf function is failing

Please delete this thread. (0 Replies)
Discussion started by: jxh461
0 Replies
Login or Register to Ask a Question