F
Fabian H
Hi C++ler,
ich hoffe, dass ich das Topic richtig getroffen hab...
Zum Problem:
Ich wollte mir für die C++ Klasse string eine split Funktion schreiben, da diese so etwas offensichtlich ja nicht besitzt.
Die Funktion an sich klappt prima, nur gibt es das Problem, dass der Compiler meckert, wenn ich aus der Funktion, die als string deklariert (wenn man das so sagt) ist, ein String Array zurückgeben will (string sRetArr[a_iNum];).
Hier der Code (strc ist eine Funktion von mir, die die Anzahl eines bestimmten Zeichens in einem String zurückgibt):
Der Compiler (gcc/Dev C++) gibt folgenden Fehler aus:
31 main.cpp
conversion from `basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> > *' to non-scalar type `string' requested
Zeile 31 ist die return-Anweisung.
Ich hoffe ihr könnt mir helfen. Danke.
ich hoffe, dass ich das Topic richtig getroffen hab...
Zum Problem:
Ich wollte mir für die C++ Klasse string eine split Funktion schreiben, da diese so etwas offensichtlich ja nicht besitzt.
Die Funktion an sich klappt prima, nur gibt es das Problem, dass der Compiler meckert, wenn ich aus der Funktion, die als string deklariert (wenn man das so sagt) ist, ein String Array zurückgeben will (string sRetArr[a_iNum];).
Hier der Code (strc ist eine Funktion von mir, die die Anzahl eines bestimmten Zeichens in einem String zurückgibt):
Code:
string split( string a_sInput, char a_cSplit, int &a_iNum )
{
a_sInput += a_cSplit;
a_iNum = strc(a_sInput, a_cSplit);
string sRetArr[a_iNum];
int iLastPos = 0, iCount = 0;
for (int i=0; i<a_sInput.size(); i++) {
if (a_sInput.at(i) == a_cSplit) {
sRetArr[iCount] = a_sInput.substr(iLastPos, i-iLastPos);
iLastPos = i + 1;
iCount++;
}
}
return sRetArr;
}
Der Compiler (gcc/Dev C++) gibt folgenden Fehler aus:
31 main.cpp
conversion from `basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> > *' to non-scalar type `string' requested
Zeile 31 ist die return-Anweisung.
Ich hoffe ihr könnt mir helfen. Danke.