Zum Inhalt springen

Inhalt eines char Pointers konvertieren


Empfohlene Beiträge

Geschrieben

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ß

Geschrieben
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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...