2 Stringfragen

Arananka

Enthusiast
Moin, moin.

1. Wie übergebe ich einen Array an eine Funktion?
2. Wie leite ich eine Ausgabe (String) in eine Datei um?

Also:
int main() ermittelt eine Benutzereingabe über cin.get (Zeichenkette),
"strlen" ermittelt deren Länge und übergibt das Ganze an die Funktion
"Auswertungsfunktion" --> int(?) Auswertungsfunktion( fraglicher Array(Wie?), int Laenge)
Diese Funktion führt die Aktionen aus und übergibt das Ergebniss nach "C:\ausgabe.txt".

mfg

AranankA
 
1.
Code:
void Funktion(char[] parameter){...}
Wenn Du allerdings einen String an eine Funktion übergeben willst, ist es besser, einen char* oder einen std::string zu übergeben.
2. Statt der Ausgabe mit cout nimmst Du einen ofstream
 
Hi.
Arananka hat gesagt.:
Moin, moin.

1. Wie übergebe ich einen Array an eine Funktion?
2. Wie leite ich eine Ausgabe (String) in eine Datei um?

Also:
int main() ermittelt eine Benutzereingabe über cin.get (Zeichenkette),
"strlen" ermittelt deren Länge und übergibt das Ganze an die Funktion
"Auswertungsfunktion" --> int(?) Auswertungsfunktion( fraglicher Array(Wie?), int Laenge)
Diese Funktion führt die Aktionen aus und übergibt das Ergebniss nach "C:\ausgabe.txt".
Warum postest du nicht den Code anstatt ihn zu be- bzw. umschreiben?

Eine Benutzereingabe solltest du eigentlich am besten mit getline() machen.

Bei einem C String markiert ja ein NUL Zeichen das Ende, d.h. du brauchst die Länge nicht an die Funktion übergeben. In C++ würde ich außerdem einfach einen string benutzen:
Code:
#include <string>
#include <iostream>
#include <fstream>

using namespace std;

bool auswertungsfunktion(const string& str) {
  // auswertung ...

  ofstream ausgabe("C:\\ausgabe.txt");

  if (!ausgabe) {
    cerr << "Konnte Datei nicht öffnen.\n"; 
    return false;
  }
  if (ausgabe << str << endl) {
    return true;
  } else {
    cerr << "Konnte nicht in Datei schreiben.\n";
    return false;
  }
}

bool auswertungsfunktion(const char* str) {
  // auswertung ...

  ofstream ausgabe ("c:\\ausgabe.txt");

  if (!ausgabe) // usw. / wie oben

  if (ausgabe << str << endl) { // usw. / wie oben
  }
}


int main() {
  ...

  string eingabe;

  if (getline(cin, eingabe)) {
    // Zeile von der Standardeingabe eingelesen.

    // Auswertungsfunktion mit std::string aufrufen:
    if (!auswertungsfunktion(eingabe)) {
      // ein Fehler ist aufgetreten...
    }

    // oder Auswertungsfunktion mit char* aufrufen:
    const char* str = eingabe.c_str();
    if (!auswertungsfunktion(str)) {
      // Fehler ... 
    }
  } else {
    // Fehler ...
    return 1;
  }
}

Gruß
 
Zurück