Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

GMoney597

Frischling

  • »GMoney597« ist der Autor dieses Themas

Beiträge: 48

Wohnort: Roth

Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer

  • Private Nachricht senden

1

29.08.2014, 10:40

Array nach Zeichen durchsuchen und löschen, Ausgabe wenn Zeichen nicht vorhanden

ich habe einen einfachen Array gestrickt, der Zeichen von A - J speichert,
nach Aufforderung soll ein Zeichen aus dieser Gruppe gelöscht werden, wenn es
nicht vorhanden ist, soll er es ausgeben

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
using namespace std;

int main()
{
    char Line[10];
    char Ziel;
    
    //Initialisierung
    for (int i = 0; i < 10; i++)
    {
        Line[i] = 'A' + i;
    }
    
    for (int i = 0; i < 10; i++)
    {
        cout << Line[i] << ", ";
    }
    cout << endl;
    
    //Suche nach ......
    cout << "Welcher Buchstabe soll entfernt werden: ";
    cin >> Ziel;
    
    do
    {
    for (int i = 0; i < 10; i++)
    {
        if (Line[i] == Ziel)
        {
            //wenn es gefunden wurde
            cout << "Das Ziel ist " << Ziel << " und wurde gefunden." << endl;
            cout << "Soll es wirklich entfernt werden: ";
            char Antwort;
            cin >> Antwort;
            //soll es wirklich entfernt werden
            if (Antwort == 'j')
            {
                Line[i] = '_';
                cout << Ziel << " wurde entfernt!" << endl;
                for (int i = 0; i < 10; i++)
                {
                    cout << Line[i] << ", ";
                }
                cout << endl;
            }
            else
            {
                cout << Ziel << " wurde stehen gelassen." << endl;
            }
        }
                "hier hatte ich die Prüfung drin, wenn es ein Zeichen nicht gibt --> cout blablabla; aber das zieht der den gesamten Array so durch"
    }
    }while (! Ziel);
    
    cin.get();
    return 0;
}

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

2

29.08.2014, 10:45

Könntest du bitte kurz schildern, was das Problem ist? (Eingabe, Ausgabe, erwartete Ausgabe)
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

GMoney597

Frischling

  • »GMoney597« ist der Autor dieses Themas

Beiträge: 48

Wohnort: Roth

Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer

  • Private Nachricht senden

3

29.08.2014, 10:56

na, ich möchte, nachdem der Array ausgegeben wurde, bspw. ein Zeichen daraus löschen
dann soll er den Array durchsuchen und sagt mir, Jo, gefunden kann gelöscht werden, oder
Neeee, geht nicht, nicht da

Hintergrund:
Ich progge eine kleine Anwendung, mit einem 2D Array, den ich je nach Phase selbst belege
Es kann auch vorkommen, dass in diesem Array Felder belegt werden sollen, die zusammen gehören, siehe Post

Ich habe nun eine Klasse erstellt, in welchem z.B. 4 Koordinaten gespeichert werden, die zusammen gehören
Will ich jetzt eine Koordinate ansprechen, soll er mir sagen "hey, da gehören noch, die und die und die dazu, sollen die mit gelöscht werden?"

Und das ganze wollte ich eben erst mal nur in einer Dimension versuchen, scheitere aber schon an der Ausgabe, falls ein Zeichen nicht vorkommt.

Ich weiß nicht, wie ich es anders beschreiben soll

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

4

29.08.2014, 11:02

Hmm, du könntest dir z.B. merken, ob der gesuchte Buchstabe gefunden wurde. Falls nicht, machst du am Ende deine Ausgabe.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

GMoney597

Frischling

  • »GMoney597« ist der Autor dieses Themas

Beiträge: 48

Wohnort: Roth

Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer

  • Private Nachricht senden

5

29.08.2014, 11:06

ah, praktisch einen Rückgabewert ? meinst du sowas,
das ist auch eine Idee, das probiere ich mal

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

6

29.08.2014, 11:08

Nicht unbedingt einen Rückgabewert. Du sollst einfach nur _speichern_, _ob_ der Wert gefunden wurde.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

GMoney597

Frischling

  • »GMoney597« ist der Autor dieses Themas

Beiträge: 48

Wohnort: Roth

Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer

  • Private Nachricht senden

7

29.08.2014, 11:10

ah jetzt verstehe ich, danke

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

8

29.08.2014, 12:02

Wenn du ein Zeichen aus einem Array löschst, dann musst du danach normalerweise relativ viel rum kopieren. Zum Beispiel die hinteren Elemente aufrücken lassen. Wenn das Array nicht geordnet sein muss kann man auch mit weniger kopieren hin kommen, jedoch sind sortierte Arrays für eine Suche gut geeignet. In dem Fall macht es denke ich wenig aus da dein Array sehr klein zu sein scheint. Trotzdem wäre das ein guter Moment sich mit Datenstrukturen auseinander zu setzen. Spontan hört sich das nach einem guten Einsatzgebiet für Listen an.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

9

29.08.2014, 12:39

Er "löscht" den char ja nicht, sondern überschreibt ihn mit einem Underscore.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

10

29.08.2014, 13:58

Versuchs doch mal mit einer Liste und durchsuche diese mit der find(liste-anfang,liste-ende, gesuchtes Zeichen)-Funktion

Falls vorhanden wird die Adresse im Iterator gespeichert und das ganze ob vorhanden oder nicht kannst du mit einer if-, else-Abfrage machen

C-/C++-Quelltext

1
2
3
4
5
6
std::list<datentyp> liste;
std::list<datentyp>::iterator IT;

IT = std::find(liste.begin(),liste.end(),'gesucht');
if(IT != list.end()) std::cout << "Objekt gefunden" << std::endl;
else std::cout << "Obejekt nicht vorhanden" << std::endl;

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Qube« (29.08.2014, 15:54)


Werbeanzeige