# C erste zwei Worte in String umwandeln



## Defenz0r (3. Mai 2015)

Hallo,

gegeben ist 

string getName() die gibt folgendes aus: " Wort1 Wort2 info1 info2"

Was ich brauche sind jeweils die ersten beiden Wörter in einem neuen String, nichts mehr.
Also es soll so aussehen:

Ausgabe string2="Wort1 Wort2"
Soll in C gelöst werden.

Danke.


----------



## bingo88 (3. Mai 2015)

Wenn es wirklich nur Worte sind, reicht es eigentlich aus, die Zeichenkette bis zum zweiten Leerzeichen kopieren. Dabei natürlich darauf achten, dass du die Länge des Arrays nicht überschreitest. Du merkst dir einen Endindex, den du in einer Schleife inkrementierst solange a) noch nicht das zweite Leerzeichen erreicht wurde und b) du nicht die Länge des Texts überschreitest. Anschließend kopierst du den Text bis zu diesem Endindex.


----------



## LCoubert (3. Mai 2015)

vllt. mit strtok (Mit strtok Strings zerteilen und splitten) den Ausgabestring unterteilen und dann die ersten beiden Ausgaben wieder in einen Ausgabestring vereinen?


----------



## Defenz0r (3. Mai 2015)

Habs nach 2 Stunden und etwas Hilfe inzwischen hinbekommen

 string str = GetChain();
            int index = str.IndexOf(' ');
            index = str.IndexOf(' ', index + 1);
            string result = str.Substring(0, index);


----------



## Rho (3. Mai 2015)

Fünf Stunden, ernsthaft?


----------



## Defenz0r (3. Mai 2015)

Ja, ich bin ne Niete im Programmieren, dagegen schaffe ich sehr komplexe Spiele 
SpaceChem z.B
https://www.youtube.com/watch?v=wfR-Dv4f15o

Da Programmiert man zwar auch, aber ich verstehe den Ablauf...

Das was ich auch noch an meinem Programm geändert habe, ist die Datei entsprechend zu verschieben.
Klingt leicht, aber wenn er dauernt nicht aktzeptiert was man will dann kann das dauern..


----------



## ofhouse (4. Mai 2015)

Ist doch kein Problem, Programmieren kannst du das trainieren wie Sport, wenn du schneller darin werden willst [emoji123]


----------



## Defenz0r (4. Mai 2015)

Das Problem ist ein anderes 
Ich sitze dann den ganzen Tag am Problem und hab dann keine Zeit mehr für wichtigere Dinge. Ich kann dann auch nicht aufhören


----------



## ofhouse (4. Mai 2015)

Problemlösen lässt sich ebenfalls trainieren [emoji106]
Musst dir halt nur ne Strategie überlegen, dann klappt das auch schneller.


----------



## Defenz0r (5. Mai 2015)

Rho schrieb:


> Fünf Stunden, ernsthaft?



Hab das mal editiert, es fühlte sich wie 5 Stunden an.
Die Differenz des Beitrags und der Lösung waren gerade mal 2 Stunden


----------



## DarkMo (6. Mai 2015)

Defenz0r schrieb:


> Habs nach 2 Stunden und etwas Hilfe inzwischen hinbekommen
> 
> string str = GetChain();
> int index = str.IndexOf(' ');
> ...


das is doch aber kein C? ^^ eher c++ oder neuer oder? das in C zu lösen wäre wenigstens nochmal ne "herausforderung" gewesen


----------



## Defenz0r (7. Mai 2015)

Das funktioniert aber in meinen *.cs Dateien !


----------



## bingo88 (7. Mai 2015)

*.cs ist auch C# und nicht C, das sind zwei verschiedene Sprachen


----------



## Defenz0r (7. Mai 2015)

Interessant


----------



## gorgeous188 (7. Mai 2015)

Am Datentyp string hätte man es erkennen können, dass es zumindest kein klassisches C89 ist. In C99 gibt es immerhin schon bool, ob es auch string gibt weiß ich spontan nicht.
Ein Großteil von C funktioniert auch in C++ oder C#, aber eben nicht alles.
Und ein Sockel 771 ist auch was Anderes als 775, auch wenn nur eine Ziffer unterschiedlich ist.


----------

