help with sscanf


 
Thread Tools Search this Thread
Top Forums Programming help with sscanf
# 1  
Old 12-22-2009
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.

Code:
int main(void)
{
	char A[5000] = "";
	strcat(A, "		hello world! WORD' name='5.3498' hello world!            ");
	float B = 0;

	sscanf(A, "WORD' name='%f", &B); // how can I match all chars before WORD and after the float ?

	printf("%f\n", B);

	return 0;
}


Last edited by limmer; 12-27-2009 at 08:46 AM..
# 2  
Old 12-28-2009
you're missing a point ...

remember: you asked sscanf to match a pattern, and it will ;

what sscanf will not do, is to search (crawl) for a pattern, for this is the purpose of strstr ... see below:

Code:
#include <stdio.h>
#include <string.h>
int main(void) {
	char A[5000] = "";
	float B = 0;
	char * begin;

	strcat(A, "		hello world! WORD' name='5.3498' hello world!            ");
	begin = strstr (A, "WORD'") ;
	sscanf(begin, "WORD' name='%f", &B); // how can I match all chars before WORD and after the float ?

	printf("%f\n", B);

	return 0;
}

- strstr will actually find the beginning of the pattern to match, and sscanf will do what it does best: just scan ...

ok ?

good luck, and success !

alexandre botao

<< botao {dot} org >>
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

sscanf does not stop at the first "&". How can I extract "doe" ? char A = "name=john&last=doe&job=vacant&"; char B = "last"; char C = ""; char *POINTER = strstr(A, B); sscanf(POINTER + strlen(B), "=%s%*", C); printf("%s\n", C); // doe&job=vacant& (2 Replies)
Discussion started by: limmer
2 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