2016-03-28 6 views
-1

Ich schreibe ein Programm in C und ich habe folgendes Problem:Wie teilt man eine 2-Zeichen-Zeichenfolge in 2 verschiedene Zeichenfolgen in C?

Der Benutzer gibt als Eingabe eine zweistellige Zeichenfolge, die eine einzelne Zahl und einen Buchstaben enthält (zum Beispiel 2B).

Wie kann ich es in eine ganze Zahl (2) und ein Zeichen (B) teilen?

Vielen Dank!

+1

Sorry, bekommen, aber das ist kein Nachhilfeservice. Zeigen Sie Ihren Code und wo Ihr ** spezifisches ** Problem ist. – Olaf

+0

Ich wollte nur fragen, ob es eine Funktion gibt, wie strtok, weil ich nichts gefunden habe, was diese Zeichenfolge teilen könnte, ohne ein Symbol zu enthalten. Auch wenn ich den Code, der unvollständig ist, senden, gibt es noch nichts Relevantes, außer dem Befehl bekommt (Eingabe); – Nadia

+0

Ist es Ihnen egal, was das Ergebnis ist, wenn die Eingabe nicht mit dem 2-stelligen Ziffern-Buchstaben-Format übereinstimmt? – chux

Antwort

0

Sie können den %c Spezifizierer einzelne Zeichen

char a, b; 
printf("Give the 2char string"); 
scanf("%c%c", &a, &b); 
printf("Char 1: %c\nChar2: %c", a, b); 
+1

Dies scheint die Frage nicht zu beantworten. – Olaf

+0

Warum nicht? Es erhält zwei einzelne Zeichen. Andere Lösungen nehmen zuerst die gesamte Zeichenfolge aus der Standardeingabe und dann parsen. Ich bekomme direkt zwei Zeichen mit zwei% c Spezifizierer. Was ist falsch? @Olaf – stackptr

+0

"Wie kann ich es in eine ganze Zahl (2) und ein Zeichen (B) teilen" – Olaf

0

Ohne den Code zu sehen, den Sie ausprobiert haben, wäre die offensichtliche Antwort, die neuen Werte Variablen basierend auf dem Index zuzuweisen.

char buffer[] = "2B"; 
int num = (int) buffer[0] - '0'; 
char letter = buffer[1]; 
+0

Warum der starre Initialisierer anstelle des offensichtlichen String-Literals? Die erste Regel zum Codieren besteht darin, Sprachmerkmale für selbstdokumentierenden Code zu verwenden. – Olaf

+0

@Olaf, weil er eindeutig neu in C ist, also wollte ich zeigen, warum Sie die Indexwerte verwenden können, um auf ein Zeichen in einer Zeichenkette zuzugreifen. –

+0

Speziell für einen Anfänger sollte man sich auf die Lesbarkeit des Codes konzentrieren. Beachten Sie, dass dies auch von anderen gelesen wird. Dies beinhaltet, keine unnötigen oder problematischen Umwandlungen hinzuzufügen - warum betest du explizit 'buffer [0]'? Außerdem solltest du _magic numbers_ vermeiden. Und erkläre den Code. – Olaf

Verwandte Themen