String Problem

Schnelle objektorientierte, kompilierende Programmiersprache.
MoonGuy
Beiträge: 231
Registriert: Fr Okt 08, 2010 2:49 pm

Re: String Problem

Beitrag von MoonGuy » Sa Okt 22, 2011 3:33 pm

Kmitska hat geschrieben:

Code: Alles auswählen

char* GetValueName(char Content[])
{
    int len = 0;

    for(int n=0; n<=strlen(Content); n++)
    {
            if (Content[n] == '=') {
            len = n;
            break;
            }
    }
    char  * __rtn_string = new char[len];
    memcpy (__rtn_string, Content, len);
    memset (__rtn_string+len,       0, 1);
    return __rtn_string;

}
Funktioniert wie ich wollte! :)
Danke an Allen, die mir geholfen haben.
Du solltest die Kommentare da lassen, wo sie waren. Sie dienen dir selbst als Anlaufpunkt, solltest du in Zukunft nochmals Probleme damit haben. Und solltest du den Code anderen vorlegen, die selbst Probleme haben, helfen sie auch. Wenn der Code allerdings als Hausaufgabe etc dient, ist es logisch 'solche' Kommentare weg zu lassen, allerdings solltest du in Hausaufgaben nicht den Code anderer(Patrick_C64) kopieren.

Ich empfehle dir weiterhin, die zwei Wiki-Artikel von proggen.org, die ich vorher gelinked hatte, anzuschauen.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: String Problem

Beitrag von Kmitska » Sa Okt 22, 2011 4:10 pm

Noch eine letzte Frage, gibt es einen Command mit den ich Zeichen in 'char' einfügen kann?
Nun will ich eine Funktion erstellen, die das Wort nach dem "=" zurück gibt.
Also z.B. "Name=Doener" und ich will dann Doener haben.

MoonGuy
Beiträge: 231
Registriert: Fr Okt 08, 2010 2:49 pm

Re: String Problem

Beitrag von MoonGuy » Sa Okt 22, 2011 4:13 pm

Kmitska hat geschrieben:Noch eine letzte Frage, gibt es einen Command mit den ich Zeichen in 'char' einfügen kann?
Nun will ich eine Funktion erstellen, die das Wort nach dem "=" zurück gibt.
Also z.B. "Name=Doener" und ich will dann Doener haben.

Zeichen in 'char' einfügen? Char ist ein Byte groß und beinhaltet Zahlen, welche dank ASCII auch als Zeichen verstanden werden können. char c = 'c'; Du hast nun ein char-Array, also machst du c[0] = 'c';

Das Wort nach dem '=' zurückgeben. Einfach die Adresse herausfinden und zurückgeben, weil es ja am Ende terminiert wird, oder den hinteren Teil in einen neuen String kopieren? Irgendwie sind das zwei verschiedene Fragen.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: String Problem

Beitrag von Kmitska » Sa Okt 22, 2011 4:21 pm

also den hinteren Teil (Nach "=") in einem char kopieren.

Sowas in der Art (funkt. natürlich nicht):

Code: Alles auswählen

for(int i=begin; i<=strlen(Content); i++)
    {
        int n=0;
        if((Content[i] == '\0'))
        {
            return Value;
        }
        Value[n] = Content[i];
        n++;
    }

MoonGuy
Beiträge: 231
Registriert: Fr Okt 08, 2010 2:49 pm

Re: String Problem

Beitrag von MoonGuy » Sa Okt 22, 2011 5:05 pm

Kmitska hat geschrieben:also den hinteren Teil (Nach "=") in einem char kopieren.
Bitte was?

Meinst du, alles nach dem '=' in einen zweiten String zu kopieren?

Code: Alles auswählen

char *getValue(char *content) {
	unsigned int len = 0, size = strlen(content);
	int newSize;
	char *rtnString;

	for (unsigned int n = 0; n < size; n++) {
		if (content[n] == '=') {
			len = n;
			break;
		}
	}

	newSize = size - len;
	rtnString = new char[newSize + 1];
	memcpy(rtnString, &content[len + 1], newSize);
	rtnString[newSize] = '\0';

	return rtnString;
}
So in etwa? Nicht getestet, aber sollte dir wenigstens die Idee geben, wie das funktionieren könnte.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: String Problem

Beitrag von Kmitska » Sa Okt 22, 2011 5:07 pm

MoonGuy hat geschrieben:
Kmitska hat geschrieben:also den hinteren Teil (Nach "=") in einem char kopieren.
Bitte was?

Meinst du, alles nach dem '=' in einen zweiten String zu kopieren?

Code: Alles auswählen

char *getValue(char *content) {
	unsigned int len = 0, size = strlen(content);
	int newSize;
	char *rtnString;

	for (unsigned int n = 0; n < size; n++) {
		if (content[n] == '=') {
			len = n;
			break;
		}
	}

	newSize = size - len;
	rtnString = new char[newSize + 1];
	memcpy(rtnString, &content[len + 1], newSize);
	rtnString[newSize] = '\0';

	return rtnString;
}
So in etwa? Nicht getestet, aber sollte dir wenigstens die Idee geben, wie das funktionieren könnte.
Genau das! :)
Danke!

Antworten