Zum Inhalt springen

Inhalt eines char Pointers konvertieren


Kuh-Couch

Empfohlene Beiträge

Ahoi!

Voraussetzung: Ansi-C

Aus der main():

int NamAnz = 5;

char *TstNamPtrArr[MAXNAMA] = {"hans", "FRANZ", "oTTo", "lisa-marie", "LISA MARIE"};

ConvertNamen(TstNamPtrArr, NamAnz);

So weit so klar.

void ConvertNamen(char *PtrNamPtrArr[], int NamAnz){					//Namen korrigieren

	char Name[51];																							//Hilfsvariable f. String


	clrscr();

	printf("Ausgabe 2: Namen in Original-Reihenfolge und korrigierter Schreibweise\n\n");


	for(int i = 0; i < NamAnz; i++){                            //Strings in Hilfsvariable kopieren

		strcpy(Name, PtrNamPtrArr[i]);


		for(int j = 0; j < strlen(Name); j++){

		  Name[j] = tolower(Name[j]);                            

		  if(Name[j] == ' ' || Name[j] == '-'){

				j++;

				Name[j] = toupper(Name[j]);

		  }

		  Name[0] = toupper(Name[0]);

		}


		PtrNamPtrArr[i] = Name;


		printf("Name %2d: %s\n", i+1, Name);

		//printf("NamPtr: %s\n", PtrNamPtrArr[i]);

	}

	ClrStdIn();

}

Damit konvertiere ich die Strings, auf die der Pointer zeigt, in normale Schreibweise.

Das Problem:

Es sollen die konvertierten Namen wieder an die Adressen des Pointers zurückgespeichert werden, damit ich sie -über die main-Funktion- in einer Funktion void SortNamen(char *PtrNamPtrArr[], int NamAnz) lexikographisch sortieren kann. Das tut er so aber nicht. Er überschreibt ALLES im Array mit dem aktuellen String, sodass am ende im ganzen Array "Lisa Marie" steht.

Und in der Sort-Funktion macht er bisher nur Mist und bricht das Programm mit 'System.AccessViolationException' ab.Kann gut sein, dass es daran liegt das in ConvertNamen() irgendwas kaputt gemacht wird.

Würd mich über eine Erklärung freuen. =)

Schönen Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Er überschreibt ALLES im Array mit dem aktuellen String, sodass am ende im ganzen Array "Lisa Marie" steht.

Was heißt denn "aktueller String"? Hast du in main denn überhaupt mehr als ein Array für die umgewandelten Strings? Wenn du deine Zeiger auf immer dasselbe Array verweisen lässt, ist doch klar, dass hinterher in allen dasselbe drinsteht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...