Alternative zu Char
-
Bei mir kommt folgende Fehlermeldung:
char-Konstanten dürfen ein oder zwei Zeichen lang sein.Programm:
char Array1[5]={'Schüler1','Schüler2',....}
Gibt es da Alternativen ?
-
std::string
.Oder eben char*.. Aber nimm lieber string.
So:std::string array[] = { "hallo", "du" };
Außerdem speichert char nur ein Zeichen, mehrere Zeichen muss man in "" setzen. (natürlich nicht mit char)
-
char steht für character, beantwortet das deine Frage?
-
#include <string> ... std::string Array1[5]={"Schüler1","Schüler2",...};
-
char mychr;
Bedeutet nur ein Zeichen kann dort gespeichert werden.
char mystr[10]
Bedeutet nur 9 Zeichen + Nullterminierung können dort gespeichert werden. (Auch string genannt)
char *ptrchar;
Ist ein Zeiger auf den Beginn eines Strings der mit dem Null Zeichen '\0' terminiert sein muss. (Nullterminierung)
In C++ verwendet man aber den sogenannten std::string. Dieser ist in dem Include <string> zu finden. Er ist leicht zu verwenden und man kann dort beliebig viele Zeichen variabel eingeben/ändern etc. Für Infos zum std::string bitte hier nachlesen: http://www.cplusplus.com/reference/string/string/
-
//C-Style String char* pStringArray[] = {"Schüler1","Schüler2",...}; //pStringArray ist ein pointer auf einen char-pointer string (array) //pStringArray[0] ist ein array element von dem char-pointer string (offset 0) //pStringArray[0] zeigt auf einen char string (array) "Schüler1" //pStringArray[0][0] ist ein array element von dem char string (offset 0) //pStringArray[0][0] ist ein char (typ) "S"
-
AP0LL0, ich würde
const char*
nehmen, da du so das undefinierte Schreiben in Stringliterale vermeidest.
-
Bambi schrieb:
Gibt es da Alternativen ?
Sicher. Beispielsweise
#include <iostream> #include <ostream> const char* const Array1[] = {"Schueler1","Schueler2"}; int main() { using namespace std; cout << Array1[0] << endl; ... }
wenn es eine unveränderliche "Lookup-Table" sein soll. Oder
#include <iostream> #include <ostream> #include <vector> #include <string> int main() { using namespace std; vector<string> Array1; Array1.push_back("Schueler1"); Array1.push_back("Schueler2"); cout << Array1[0] << endl; ... }
falls Du Zeichenketten und/oder die Zahl der Elemente zur Laufzeit ändern willst.