Zum Inhalt springen

Kuh-Couch

Mitglieder
  • Gesamte Inhalte

    1
  • Benutzer seit

  • Letzter Besuch

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

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