sscanf not extracting pattern

c, regex, scanf

Solution

your `sscanf()` string format should be:

sscanf(list, "%*[^(](%d%[^)]" , &memory_size, unit);

- `%[^)]` means catch charachters and stop ctaching when finding the charachter `)` or end of the string

- `%*[^(]` means:

- `[^\(]` means catch charachters and stop ctaching when finding the charachter `(` - as opposed to a more conventional `%s` - catching charachters and stop ctaching when finding space characters"

- `*` means "read but not store"

Problem

I am trying to figure out the pattern I should be giving to sscanf. I have a string abcde(1GB). I want to extract 1 and GB. I am using ``` char list[]= "abcde(1GB)"; int memory_size =0; char unit[3]={0} ; sscanf(list, "%*s%d%s" , &memory_size, unit); ``` I do not see tokens extracted when I print I see memory_size =0 and NULL in unit. Thanks

Original source