pajoohesh
دوشنبه 24 خرداد 1395, 11:39 صبح
سلام دوستان عزیز
سوالم اینه که چطور می تونم یک رشته رو به عنوان ورودی دریافت کنم و اعداد داخل اون رو نمایش بدم مثال :
"reza 122 hassan 226 akbar 12"
1-9-7-2
چهارشنبه 26 خرداد 1395, 01:05 صبح
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAXSIZE 0b1000000000
#define _BLANK__ ' '
unsigned long int get_num (unsigned long int, char*, int, char*);
int main () {
char *s = malloc (MAXSIZE);
char *d = malloc (2*MAXSIZE);
strcpy (s, "9Z9 1.ABC 123 0.123 1.23 12.3 123.0 A1.2 12.A3. 1..23...4.777.5 1.2.3 1 .2.3 1. 2 3");
printf ("Numbers found: (%lu)\n", get_num (MAXSIZE, d, _BLANK__, s));
free (s); free (d);
return (EXIT_SUCCESS);
}
unsigned long int get_num (unsigned long int dbuf, char *d, int sep, char *s) {
char *p = d; int dig, dot; unsigned long int n;
for (n = dig = dot = 0; *s != '\0' && dbuf > 0; *s++) {
if (isdigit (*s)) {
if (dot == 1)
*p++ = '.', --dbuf, dot = -1;
else if (dig == 0)
++n;
*p++ = *s, --dbuf, dig = 1;
}
else if (dig == 1 || dot == 1) {
if (*s == '.' && dot == 0)
dot = 1;
else
*p++ = sep, --dbuf, dot = 0;
dig = 0;
}
}
return (n);
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.