How to compares two strings with numbers numerically in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>
 
int numerical_s_cmp(char *s1, char *s2); 
 
int main(void)
{
    char s1[] = "123";
    char s2[] = "789";

    printf("%d\n", numerical_s_cmp(s1, s2));
    if (numerical_s_cmp(s1, s2) == 1)
        printf("s1 > s2");
    else if (numerical_s_cmp(s1, s2) == -1)
             printf("s1 < s2");
         else
             printf("s1 = s2");

    return 0;
}
int numerical_s_cmp(char *s1, char *s2) 
{ 
    double val1, val2; 
    
    val1 = atof(s1); 
    val2 = atof(s2); 
       
    if (val1 < val2) 
        return -1; 
    else if (val1 > val2) 
             return 1; 
         else 
             return 0; 
} 

  
/*
 
run:
 
-1
s1 < s2

*/

 



answered Nov 23, 2015 by avibootz
edited Nov 24, 2015 by avibootz
...