DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C (http://www.daniweb.com/forums/forum118.html)
-   -   string to integer array transformation (http://www.daniweb.com/forums/thread1115.html)

Valmian Sep 16th, 2003 12:20 am
string to integer array transformation
 
Hello,
Ok.. here is another problem I have come up with..
I have a string of numbers (comma or '\n' separated (from .csv file)). I have allocated an array of integers to put in the numbers into yet how do I actually do it.
Example: I have "13, 34, 23, 12\n" string and my program should transform it into a[0]=13; a[2]=34; a[3]=23; a[4]=12

______________________________________________________________
Here are some of my ideas:
For transforming I am trying to use sscanf();
For finding what the number is (in char array format) I use a false code (works with more error then correct):

bool spc = false;
char numb[10];
memset (numb, ' ', sizeof(char)*(10+4));

printf ("\nnumbers: ");
for (int i=0; data[i]!='\0'; i++)
{

if (data[i]=='\n')
spc=true;
if (spc==true && (nch(data[i])==true || data[i]=='-'))
{
int a=i;
for (int b=0; b<10; a++, b++)
{
if ((nch(data[i])==true || data[i]=='-') && (data[i]!='\n'))
{
numb[b] = data[a];
if (data[a]=='\n')
break;
if (data[a]=='\n')
printf ("\n\\n incountered");
}
}
i=a;
fflush (stdout);
printf ("%s :: ",numb);
}
}
}

Valmian Sep 16th, 2003 5:11 pm
Re: string to integer array transformation
 
So can anybody please help me.. it doesn't seem that anyone is even reading it (3 views only and I made all three probably myself).
Ilya

Valmian Sep 16th, 2003 8:16 pm
Re: Re: string to integer array transformation
 
I think I did it...
______________________________________________________
//ch4n is part of this class function that retuns 1 if the char is a number or -1 //and 0 otherwise
short sn=0;
int f=0, g=0;
for (int i = 0; i<strlen(data); i++)
{
if (data[i]=='\n')
sn=1;
if (ch4n(data[i])==1 && sn==1)
{
char numb[10];
memset (numb, ' ', sizeof(numb));

int b = 0;
for (int a=i; ch4n(data[a])==1; a++)
{

numb[b]=data[a];

b++;
i=a+1;
}

sscanf (numb,"%d",&arrays.ar[f].values[g]);
fflush (stdout);
f++;
if (f==arrays.width)
{
f=0;
g++;
}

}
}


All times are GMT -4. The time now is 7:55 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC