2017-01-12 4 views
0

im Grunde, wenn wir die Eingabe von Benutzer nehmen durch ihn zu fragen, wie unten:Wie teilt man die Eingabe vom Benutzer in zwei Teile und teilt sie zwei verschiedenen Arrays in C++ zu?

cout << "Enter your course code and course name: "; 

Nun, wenn Benutzer dieses „CS201 Einführung in die Programmierung“ kommt, nun, wie kann ich zuweisen nur den Code Teil dh ‚CS201‘ zu ein Array, sagen wir mal;

char courseCode[10]; 

Und wie kann ich den Namen Teil in dem Array zuweisen, können sagen:

char courseName[50]; 

ich dies bis 5 Studenten tun wollen, die Struktur, wie unten definiert:

struct student 
{ 
char courseName[50]; 
char courseCode[10]; 
}; 

student stu[5]; 

Bitte helfen Sie mir, ich kann nicht herausfinden, wie kann ich die Eingabe in zwei Teile aufteilen und sie in zwei verschiedenen Arrays, die in der oben definierten Struktur vorhanden sind. Danke im Voraus.

+0

http://stackoverflow.com/questions/236129/split-a-string-in-c – learnvst

Antwort

0

Jungs Ich löste mein Problem mit den cin.getline() Funktionen, um die Zeichenfolge im Token-Zeiger und dann strchr(char [], cahr) von <string> Header-Datei, um die aktuelle Zeichenfolge von der Stelle, wo der erste Leerraum kommt trennen. Dann kopierte ich beide getrennten Saiten in meine gewünschten Elemente meiner Struktur mit strcpy() Funktion.

Vielen Dank allen für mich, hier zu helfen :)

3

Es ist eigentlich einfach, wenn Sie sich daran erinnern, dass der Eingabeoperator >> auf Leerzeichen stoppt und auch über die std::getline Funktion bekannt ist.

Dann können Sie so etwas wie

std::string courseCode; 
std::string courseName; 

std::cin >> courseCode; 
std::getline(std::cin, courseName); 

Hinweis tun, die ich std::string für die Saiten statt Arrays verwenden. Dies ist, was Sie wirklich verwenden sollten. Wenn Sie (von Ihrem Lehrer oder etwas) nicht erlaubt sind und Arrays verwenden müssen, dann können Sie std::getline nicht verwenden, sondern stattdessen std::istream::getline verwenden.

+0

„_If Sie nicht erlaubt sind (von Ihrem Lehrer oder etwas) Dann schick ihn in die cpp lounge und wir kümmern uns darum. "FIFY. –

+0

@Some Programmierer dude Ich kann Strings verwenden und erlaubt, aber um mich stärker in Arrays zu machen, möchte ich Arrays hier verwenden. Zweitens, der Code, den Sie schrieben: 'std :: getline (std :: cin, Kursname);' Wie würde es den Kursnamen zuweisen (von Benutzer mit dem Kurscode als Eingabe genommen) zu Kursname Zeichenfolge? –

+0

@KhubaibKhawar Die Funktion 'std :: getline 'liest den Rest der Zeile und speichert sie in der als zweites Argument angegebenen Zeichenfolge. –

0

Speichern Sie die Eingabe in einem einzelnen String sagen x

Jetzt auf x lineare Suche nach dem ersten Leerzeichen durchführen und teilen Sie die Zeichenfolge um den ersten Leerzeichen. Speichern Sie die zwei resultierenden Zeichenfolgen in Ihrer Struktur.

+0

Nehmen wir an, ich benutzte die lineare Suche und speicherte die erste Eingabe im courseCode Array, nachdem ich den Leerraum gefunden hatte. Wie ordne ich nun den linken String zu, der der Kursname im Array courseName ist? –

Verwandte Themen