C++/pointer?
Expert: Zlatko - 5/13/2010
Questionhi ,
i have a question to write a program that takes a phone number as input from the user and stores it as a string value. The phone number will consist of country code, city code and actual 7-digit number separated by “-”. User can enter the phone number in any order. Your program should be able to recognize the country code, city code and 7-digit number and display it in the following format.
Country code - City code – 7-digit number
Detailed Description:
1. Take phone number as input from the user.
2. The number should be stored as a string value.
3. User can enter the phone number in any order for example 0567 or 333-0092-1234567 or 1234 etc.
4. Program should be able to recognize country code, city code and 7-digit number from the string and display it in the right sequence.
Sample Output 1
Enter the complete phone number : 0092-1234567-333
Country code is = 0092
City code is = 333
7-digit number is = 1234567
Phone number in correct sequence is = 0567
Sample Output 2
Enter the complete phone number : 1234
Country code is = 0092
City code is = 321
7-digit number is = 1234567
Phone number in correct sequence is = 0567
Sample Output 3
Enter the complete phone number : 300-0092-9876543
Country code is = 0092
City code is = 300
7-digit number is = 9876543
Phone number in correct sequence is = 0543
HINTS:
You can split the string into three parts and store each part as different string.
You should use strtok, strlen, and strcat functions.
here i start the code
#include<iostream.h>
#include<string.h>
main()
{
char string[20],*p,countrycode;
int length;
cout<<"Enter the compelete phone number";
cin>>string;
p=strtok(string,"-");
if(p);
cout<<p<<endl;
p=strtok(NULL,"-");
if(p)
cout<<p<<endl;
p=strtok(NULL,"-");
if(p)
cout<<p<<endl;
}
and if i give it output as 1234567-0092-333 then it split it into as
1234567
0092
333
but now further i cannot understand how i use strlen and strcat function and how i store split part in different strings
looking for help, thanks in advance
AnswerHello Sehrish
I don't really understand your assignment. I don't understand Sample 2, and I don't understand how you get "Phone number in correct sequence"
I can help you a little in splitting the string and deciding what the numbers mean based on the length. I hope my example below will help you with your assignment.
Have a look at the program. It is quite short. If there is something you don't understand, please ask again.
Best regards
Zlatko
#include<iostream.h>
#include<string.h>
int main()
{
char string[20];
char *p;
char *countrycode = "???";
char *citycode = "???";
char *phone = "???";
int length;
cout<<"Enter the compelete phone number ";
cin>>string;
p=strtok(string,"-");
if (p)
{
do // do in a loop until all parts of the input have been looked at
{
length = strlen(p);
if (length == 7)
{
phone = p;
}
else if (length == 3)
{
citycode = p;
}
else if (length == 4)
{
countrycode = p;
}
} while((p = strtok(NULL, "-")) != NULL);
}
cout << "Country code is " << countrycode << endl;
cout << "City code is " << citycode << endl;
cout << "7-digit number is " << phone << endl;
// I don't know what this means
cout << "Phone number in correct sequence is = ????" << endl;
return 0;
}