Wie kann ich einen Array löschen?



  • 😕 😕 😕 Wie kann ich einen gesammten Array löschen? 😕 😕 😕
    Ich habe folgendes Programm geschrieben, mit dem man einen Text, den man eingibt, umkehren kann.
    Der Code sieht so aus:

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int iCounter;
    	char cBuffer[80];
    	bool bEwig = false;
    
    	do {
    		cout << "_______________________________________" << endl;
    		cout << "_______________________________________" << endl <<endl;
    		cout << "            WORTUMKEHRER               " << endl;
    		cout << "_______________________________________" << endl;
    		cout << "_______________________________________" << endl << endl << endl;
    
    		cout << "Bitte geben Sie ein Wort ein:" << endl;
    		cin.get(cBuffer, 80);
    		cout <<endl;
    		cout << "Die Umkehr Ihrer Eingabe ist:" << endl;
    		for (iCounter = 79; iCounter >= 0; --iCounter) {
    			if (cBuffer[iCounter] != (char)204 && cBuffer[iCounter] != (char)0) {
    				cout << cBuffer[iCounter];
    			}
    		}
    	} while (bEwig==false);
    	cout << endl << endl << endl <<endl;
    	return 0;
    }
    

    Wie ihr vieleicht bemerkt, funktioniert der Loop nicht, weil ich das Array nicht löschen kann. Also, wie kann ich alle Einträge im Array auf einmal löschen???

    Ich hoffe, ihr könnt mir eine Antwort geben.
    Ich Danke euch schon im voraus.

    Ps: Ich weiss, die vielen endl's sind nicht gerade hübsch, aber ich habe mich eben schon an sie gewöhnt.



  • Hm....

    ka ob es das ist was Du meinst aber schau Dir mal memset an.

    Damit tust Du Dich aber viel leichter:

    #include <algorithm>
    #include <string>
    #include <iostream>
    using namespace std;
    
    int main(int argc,char * argv[])
    {
    
    	string t;
    	cout<<"Gib was ein\n";
    	getline(cin,t);
    	reverse(t.begin(),t.end());
    	cout<<t;
    	return 0;
    }
    


  • Ich würde sagen, dass deine Schleife nicht pauschal bei 79 anfangen sollte, sondern bei der Länge des eingegebenen Strings.

    #include <cstring> // strlen
    ...
    for (iCounter = strlen(cBuffer) - 1; iCounter >= 0; --iCounter)
      cout << cBuffer[iCounter];
    

    Die if-Abfrage ist IMHO sinnlos, ein 0 kommt im String nicht vor, und was ist an 204 so schlimm? BTW würd ich mir die Namensgebung mit der ungarischen Notation (i vor int-Variablen, c vor char usw.) gar nicht erst angewöhnen.


Anmelden zum Antworten