Einzelnen Beitrag anzeigen
Alt 18.10.2003, 21:00   #1
K@sperl
bitte Mailadresse prüfen!
 
Registriert seit: 03.04.2001
Beiträge: 2.387


Standard C - char* und char[]

Hab da ein kleines C Problem, folgende Problemstellung:
Das Programm soll aus zwei Arrays(consonants, vowels) jeweils einen Buchstaben auslesen, wobei der Buchstabe per Zufallszahl ausgewählt wurde, und diesen Buchstaben dann in einen String str einfügen. Da die Funktion, die das bewerkstelligt, aber vom Datentyp char* ist, und der String, der aus den einzelnen Buchstaben zusammengesetzt ist vom Datentyp char, passt das natürlich nicht. Drum hab ich mir gedacht, daß ich den fertigen String str mit einem impliziten Typecast durch Zuweisung an brand vom Datentyü char* ebenfalls zu char* konvertieren kann und diesen dann an die Funktion NewBrand zurückgebe - geht aber nicht, keine Ahnung warum, da wir noch nicht gelernt haben was char* ist, und ich aufgrund einer Mathe Klausur auch nicht genug Zeit habe mir das alles selbst rauszusuchen. Aja, als Kommandozeilenparameter wird die Länge des Strings mitgegeben, hier im Programm als Var. n


Hier ist mal der Code der entsprechenden Funktion
Code:
char* NewBrand(int n) {
  int cons, vow, i;
  char str[n];
  char* brand;
  i = 0;
  while(i < n) {
    cons = RandNumber(21);
    vow = RandNumber(5);
    str[i] = consonants[cons];
    i = i + 1;
    if(i < n) {
      str[i] = vowels[vow];
      i = i + 1;
    }
  }
  brand = str;
  //printf("%s", str);
  //printf("%d", i);
  return brand;
}
K@sperl ist offline   Mit Zitat antworten