943,917 Members | Top Members by Rank

Ad:
  • C Discussion Thread
  • Unsolved
  • Views: 10562
  • C RSS
Sep 16th, 2003
0

string to integer array transformation

Expand Post »
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);
}
}
}
Reputation Points: 13
Solved Threads: 0
Junior Poster in Training
Valmian is offline Offline
82 posts
since Sep 2003
Sep 16th, 2003
0

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
Reputation Points: 13
Solved Threads: 0
Junior Poster in Training
Valmian is offline Offline
82 posts
since Sep 2003
Sep 16th, 2003
0

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++;
}

}
}
Reputation Points: 13
Solved Threads: 0
Junior Poster in Training
Valmian is offline Offline
82 posts
since Sep 2003

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C Forum Timeline: file input and output
Next Thread in C Forum Timeline: printf buffer strange behaviur





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC