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

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

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?

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.

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

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
}

ok, thanks alot Ancient Dragon, very helpful, and very much apprechiated :)

This article has been dead for over six months. Start a new discussion instead.