How to extract numbers from a string in C

2 Answers

0 votes
#include <stdio.h>
#include <ctype.h>

#define SIZE 50

int main(void)
{
    int n = 0, i = 0;
    char s[SIZE] = "100abc20 defg 748h ijk 7l mno3945pqr";
    
    while(s[i] != '\0') 
    {
        if (isdigit(s[i])) 
        {
            n = n * 10 + (s[i] - '0');
            i++; 
            while (isdigit(s[i])) 
            {
                n = n * 10 + (s[i] - '0');
                i++; 
            }
            printf("%i\n", n);
            n = 0;
        }
        i++; 
    }
       
    return 0;
}
 
/*
 
run:
 
100
20
748
7
3945

*/


answered Nov 22, 2014 by avibootz
0 votes
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

#define SIZE 50

int main(void)
{
    int n = 0, i = 0;
    char s[SIZE] = "100abc20 defg 748h ijk 7l mno3945pqr";
    
    while(s[i] != '\0') 
    {
        if (isdigit(s[i])) 
        {
            n = atoi(s + i);
            i++; 
            while (isdigit(s[i])) i++; 
            
            printf("%i\n", n);
            n = 0;
        }
        i++; 
    }
       
    return 0;
}
 
/*
 
run:
 
100
20
748
7
3945

*/


answered Nov 22, 2014 by avibootz

Related questions

3 answers 300 views
300 views asked Dec 14, 2020 by avibootz
1 answer 156 views
1 answer 175 views
1 answer 182 views
1 answer 190 views
3 answers 132 views
...