How to remove the letters (all non-numeric) from a string in C

2 Answers

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

char *RemoveCharacters(char* s);

int main(void)
{   
    char s[] = "123c 9891programming 100000012language";
    
    puts(RemoveCharacters(s));
    puts(s);
    
    return 0;
}

char *RemoveCharacters(char* s)
{
    char *dest = s;
    char *src = s;

    while(*s)
    {
        if (!isdigit(*s)) { s++; continue; }
        *dest++ = *s++;
    }
    *dest = '\0';
    
    return src;
}
      
/*
run:
   
1239891100000012
1239891100000012

*/

 



answered Jan 31, 2017 by avibootz
0 votes
#include <stdio.h> 
#include <ctype.h> 

void RemoveCharacters(char* s);

int main(void)
{   
    char s[] = "123c 9891programming 100000012language";
    
    RemoveCharacters(s);
    
    puts(s);
    
    return 0;
}

void RemoveCharacters(char* s)
{
    char *dest = s;
 
    while(*s)
    {
        if (!isdigit(*s)) { s++; continue; }
        *dest++ = *s++;
    }
    *dest = '\0';
}
      
/*
run:
   
1239891100000012

*/

 



answered Jan 31, 2017 by avibootz

Related questions

...