DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C (http://www.daniweb.com/forums/forum118.html)
-   -   Storing data into an Array (http://www.daniweb.com/forums/thread35316.html)

Savage221 Nov 13th, 2005 8:55 am
Storing data into an Array
 
Sorry for the rather newbish question. I'm stuck on part of this program, it seems simple enough :-| The user is prompted to enter a phone number in the format of: xxx-xxxx (the hyphen must be included). From there the phone number needs to be stored into an array of 7 integers, lets just say phoneNumber. The hyphen however needs to be removed before the number is stored. Just storing data is easy, but removing the hyphen then storing is really confusing me, the book doesnt explain anything about how this could be done (at least nothing in the array chapter and any previous chapters).

Any help or tips would be greatly greatly apprechiated, thanks everyone

SpS Nov 13th, 2005 9:01 am
Re: Storing data into an Array
 
store it in a character array and then compare each character with '-'....if it is equal to hyphen then skip it(don't store it) in the phone number array...use continue statement

Savage221 Nov 13th, 2005 12:35 pm
Re: Storing data into an Array
 
ok, thanks. The only part that worries me is the teacher is pretty strict on the code format, if we use different methods than what he wants he will make us change it. The teacher has made errors before in the instructions but it says the array needs to be 7 integers. isdigit() was mentioned to be used, I know nothing about it, and I assume isdigit needs a char type?

Ancient Dragon Nov 13th, 2005 12:39 pm
Re: Storing data into an Array
 
Quote:

Originally Posted by Savage221
ok, thanks. The only part that worries me is the teacher is pretty strict on the code format, if we use different methods than what he wants he will make us change it. The teacher has made errors before in the instructions but it says the array needs to be 7 integers. isdigit() was mentioned to be used, I know nothing about it, and I assume isdigit needs a char type?

isdigit() returns true if the character is '0' through '9'
char c = '1';
if( isdigit(c) )
  printf("Its a digit\n");
else
  printf("Its not a digit\n");

now, all you have to do is loop through the input string and place each digit into the next available array element. If isdigit() returns false (0) then do nothing. That will mean you will need to keep a counter variable to keep track of where in the array to place the digit.

Savage221 Nov 13th, 2005 3:10 pm
Re: Storing data into an Array
 
maybe I should re read the chapter :( I have no problem making the loop run 8 times, prompting for the next number, checking if its a digit and then storing it into an array of 7 integers, however, the person needs to enter the phone number all at once with the hyphen. It's sad, but I'm drawing a blank, the rest of the program seems so simple, but I can't do anything untill I get past the initial input

Ancient Dragon Nov 13th, 2005 6:34 pm
Re: Storing data into an Array
 
something like this. However this will not prevent somebody from entering more than 7 digits or from entering other characters.
int c;
int array[7] = {0};
int counter = 0;

while( (c = getchar()) != '\n')
{
  if( isdigit(c))
      // put the binary number in the array and bump the counter
      array[counter++] = c - '0';
}

or you could use fgets() to get the entire string, then validate that it contains the right number of digits and a hyphen
char input[9];
fgets(input,sizeof(input),stdin);
// does it contain a hyphen
if( input[3] != '-' )
{
  // display an error message
}
// count number of digits
for(counter = 0, i = 0; input[i]; i++)
{
  if( isdigit(input[i]))
    counter++;
}
if(counter != 7)
{
  // display error message
}

Savage221 Nov 13th, 2005 7:05 pm
Re: Storing data into an Array
 
ok, thanks alot Ancient Dragon, very helpful, and very much apprechiated :)


All times are GMT -4. The time now is 9:04 am.

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