Formatierung der Telefonnummer in c++
Bitte helfen, ich bin versuchen zu formatieren Sie eine Telefonnummer wie (111)111-1111
. Ich habe den folgenden code der funktioniert, aber ich würde gerne schreiben, viel kürzer.
int main(){
string phone_number;
cin >> phone_number;
cout<<"(";
for(int i = 0; i < 3; i++) {
cout << phone_number[i];
}
cout << ")";
for(int i = 3; i < 6; i++) {
cout << phone_number[i];
}
cout << "-";
for(int i = 6; i < 10; i++) {
cout << phone_number[i];
}
cout<<endl;
return 0;
}
bitte unterstützen Sie
- Bevor Sie anfangen zu schreiben versucht, kürzeren code, bitte nehmen Sie sich die Zeit zum Einrücken der code ordnungsgemäß. Zum Beispiel, die der Körper normalerweise eine Schleife eingerückt wird, eine gewisse Anzahl von Leerzeichen von den umgebenden
for
und}
. Ihr code wird nicht akzeptabel für die meisten Leser, bis Sie beginnen, dies zu tun konsequent. - Warum muss es kürzer sein?
- Dies funktioniert nur für eine Teilmenge von Telefonnummern (US-zahlen). Was ist, wenn ich geben Sie
0049 30 12345678
oder+49 30 12345678
? - Dies scheint eine klassische Hausaufgaben Frage. Wenn ja, ich und viele andere würde es sehr zu schätzen tagging ist es so, dass wir "richtigen" Antworten (d.h. nicht zu erbringen Sie den code, welcher IMO ist gleichbedeutend mit Cheaten).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Andere Möglichkeit:
Verwenden string::insert. Aber da Sie einen string als Eingabe, warum würde nicht Sie geben den input in format Sie benötigen. Jeder, wie, das ist, wie es getan werden kann, mit Schleifen, wenn Sie möchten, die Zeichenfolge zu ändern. In Fall, dass Sie nicht wollen, ändern Sie den original-string und speichern Sie dann die modifiziert, um eine unterschiedliche temporäre variable.
Wäre wahrscheinlich nicht gut ändern, um Ihre Daten zu formatieren.
Ignorierte die Frage, wie warum Sie wollen, dies zu schreiben, "kürzer" ...
Dass gesagt wird der Quellcode (noch diese) prüft, um zu sehen, ob es tatsächlich 10 zahlen präsentieren, oder, wenn Sie zahlen. , Dass vor allem ist wichtiger als der Wunsch, es "kürzer".
%c
?Dein code ist zu kurz, nicht zu lang. Die Eingabe von dem Benutzer muss immer auf Gültigkeit überprüft werden. Was zum Beispiel, wenn das verwendete bereits in den Satzzeichen, so dass
phone_number
enthält "(111)111-1111"? Dann würde der code ausgegeben "((11)-)11-1-11" (ich denke, dass). Dies ist nicht, was Sie wollen. Zumindest, müssen Sie werfen alle nicht-Ziffer-Zeichen.