我是新來這個論壇,並期待一些幫助,任何幫助將不勝感激!我被困在這個作業中,因爲我的編程基礎1課,而且在這一點上絕望,因爲我一直堅持了幾個小時。謝謝。C++電話號碼程序
以下是提示: 許多網站都要求輸入電話號碼。問題是有很多不同的方式來表示電話號碼。例子包括817-555-1234, 817555 1234(c)和(817)555-1234 x23。編寫一個C++程序,輸入包含任何格式電話號碼的字符串 ,並以標準 格式輸出。對於這項任務,標準格式是(817)555-1234。 你的C++程序應: 1.輸入包括數字 2.複製只從輸入字符串的數字到另一個字符串中 3.發出一個串中的錯誤消息,如果輸入字符串不包含正好10 位數 4。輸出在標準格式中的電話號碼
#include "stdafx.h"
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <cctype>
using namespace std;
const int NUM_LENGTH = 10;
string ReadAndValidateUserNumber(string userNumber);
int main()
{
string userNumber;
ReadAndValidateUserNumber(userNumber);
system("PAUSE");
return 0;
}
string ReadAndValidateUserNumber(string userNumber)
{
bool check = false;
while (!check)
{
check = true;
cout << "Please enter a Number: ";
cin >> userNumber;
if (userNumber.length() != NUM_LENGTH)
cout << "The phone number may contain 10 digits only. \n";
else
{
userNumber.insert(0, "(");
userNumber.insert(4, ")");
userNumber.insert(8, "-");
for (int i = 0; i < userNumber.length(); i++)
{
if (isdigit(userNumber[i]))
{
userNumber = NUM_LENGTH;
}
}
}
if (!check)
{
cout << "Invalid Entry! Please try again." << endl;
}
}
return userNumber;
}
什麼是錯誤?什麼是正確的行爲?不良輸出的例子?請明確點。這不是要求人們爲你寫代碼的地方。 – Incomputable
我很抱歉。例如,如果我只輸入10位數字「1123456789」,它只是說按任意鍵繼續。如果我輸入類似「123-456-9999」的東西,它說錯誤只能有10位數字。 – bmoney
我想讓程序吐出(123)456-9999格式的數字。我只是不知道如何以及如何使用「isdigit」從字符串中提取數字並忽略任何字母。 – bmoney