Array-Grösse auslesen
-
vielleicht kann ich mich so verständlicher ausdrücken:
************************************
#include <iostream>
using namespace std;//Uebung for-Schleife
int main()
{
//Variablen definieren
char $wort[10];
int i=0, g;cout <<"\nBitte ein Wort mit max. 10 Zeichen eingeben: ";
cin >> $wort;//Pruefsumme für die for-Schleife ermitteln
g=sizeof($wort);for (i; i<g; i++)
{
//Wort ausgeben
cout <<"\n" << $wort[i] << "\n";
}
return 0;
}
************************************wenn ich das so löse, funzt es zwar, aber es sieht etwas unschön aus, weil die schleife bis 10 weitermacht, auch wenn das wort schon länsgt ausgegeben ist. deshalb möchte ich für die variable g nicht den sizeof des gesamten arrays, sondern nur die grösse der inhaltes.
ich hoffe das ist nun etwas verständlicher.
philipp
-
Also ich glaub nicht, dass das kompiliert wird
-
Achso, und bitte Codetags verwenden. Kann man einfach besser lesen
.
-
Zu deiner Frage: Um nur die Größe des Inhalts zu ermitteln wird der String mit 0 ('\0') terminiert. Dann kann dir strlen auch sagen wie lang der String ist.
-
Das mit dem $ ist AFAIK eine gcc-Erweiterung.
-
Was bewirkt die denn?
-
dass du $ in Bezeichnern verwenden kannst. Doll oder?
-
Original erstellt von Bashar:
dass du $ in Bezeichnern verwenden kannst. Doll oder?Ja für die PHP-Freaks!
-
bitte verbessert mich, falls ich falsch liege, bin auch noob, aber kann man denn net schreiben:
char $wort[10];
cin >> wort;
cout << wort;?
cya
-
Hallo <dummie>
Verstehe absolut nicht was du eigentlich genau wissen willst.
Nicht? Hast du nie solche "Übungs"programme geschrieben
(..) aber kann man denn net schreiben:
Das würde sicherlich nicht zu dem von <philCH> gewünschtem Effekt führen;
Ich denke mal er wollte so was in der Art haben:
#include <iostream> #include <string> using namepsace std; int main() { string str; cout << "Bitte geben Sie ein Wort ein" << endl; cin >> str; // Ich bin mir nicht sicher ob es wirklich string::length() gibt ;) // aber so in der Art sollte es heissen for (int i = 0; i < str.length(); i++) { cout << str[i] << endl; }; }
mfg
th3law[ Dieser Beitrag wurde am 25.05.2003 um 16:57 Uhr von Th3Law editiert. ]
-
#include <iostream> #include <string> using namepsace std; int main() { string str; cout << "Bitte geben Sie ein Wort ein" << endl; cin >> str; // Ich bin mir nicht sicher ob es wirklich string::length() gibt ;) // aber so in der Art sollte es heissen // Also mach das hier besser so! for (int i = 0; i < str.length(); i++) cout << str[i]; cout.flush(); // Denn sonst bekommst du für jedes Zeichen eine Neue Zeile ! // Ausser du willst das ! }
-
Naja, also es gibt dort einige Möglichkeiten. eine währe das:
#include<iostream> #include<string> using namespace std; main() { int i, size, besetzt; string str[5]={"1. String","2. String"}; size=5; besetzt=0; for(int i=0;i<size;i++) if (!str[i].empty()) besetzt++; // str.empty() kontrolliert, ob String leer ist. cout<<size-besetzt; }
[ Dieser Beitrag wurde am 26.05.2003 um 10:33 Uhr von Spieleprogrammierer editiert. ]