www.vorwissen.de
Ein Projekt von vorhilfe.de
Das gesammelte Wissen der Vorhilfe
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Algorithmen und Datenstrukturen" - C - Zeichenkette manipulieren
C - Zeichenkette manipulieren < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

C - Zeichenkette manipulieren: Leerzeichen raushauen?
Status: (Frage) beantwortet Status 
Datum: 10:43 Mi 13.06.2007
Autor: misterET

Hallo, ich habe mal eine Frage, wie man aus einer Zeichenkette die Leerzeichen entfernt?
Habe ziemlich lange gegoogelt aber nichts passendes gefunden.
Gibt es nicht irgendweine Funktion?

        
Bezug
C - Zeichenkette manipulieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:52 Mi 13.06.2007
Autor: devilofdeath

Es wäre ganz praktisch, wenn du auch dazuschreiben könntest um welche Programmiersprache es sich handelt.

Lg

Bezug
        
Bezug
C - Zeichenkette manipulieren: Antwort
Status: (Antwort) fertig Status 
Datum: 11:55 Mi 13.06.2007
Autor: devilofdeath

Also was mir jetzt ganz spontan dazu einfällt ist die "Split" Funktion!

Gibts aufjedenfall in JAVA und VB.

VB :  

Dim sArray() As String
sArray = Split(Text, Zeichen)

Text = dein String
Zeichen = das Zeichen nach dem gesplittet wird. In deinem Fall Zeichen = " "

JAVA:

String Text = "Ich bin ein Test";

String[] splittArray = Text.split(" ");  //hier ist das Trennzeichen

Ergebnis:

splittArray[0] = "Ich";
splittArray[1] = "bin";
splittArray[2] = "ein";
splittArray[3] = "Test";


Wenn du dann den Text wieder zusammenstöpseln willst, musst du halt einfach ne Schleife machen die dir das Array durchgeht und alles zusammenhängt.

Pseudocodemäßig schaut das so aus:

für i=1 bis LängeArray
  text = text + Array[i]


Hoffe das hilft!

LG

Bezug
                
Bezug
C - Zeichenkette manipulieren: Sprache C
Status: (Frage) beantwortet Status 
Datum: 15:21 Mi 13.06.2007
Autor: misterET

Hi! Sorry, die Sprache mit der ich arbeite ist C.

Ich glaube so eine Splitfunktion gibt es da gar nicht?


Ich wollte es so machen, dass ich mir jedes Zeichen anschaue, und wenn ich beim Leerzeichen angelangt bin, verschiebe ich das darauffolgende um eine Position nach vorne (also dorthin, wo sich das Leerzeichen befand), und die ersten Buchstaben jedes der Wörter sind dann groß.

Bsp.

SoSollEsHinterherAussehen

Bezug
                        
Bezug
C - Zeichenkette manipulieren: Antwort
Status: (Antwort) fertig Status 
Datum: 15:40 Mi 13.06.2007
Autor: devilofdeath


> Hi! Sorry, die Sprache mit der ich arbeite ist C.
>  

Mhm also in C hab ich erst sehr wenig programmiert. also kann ich dir nciht sagen obs das auch für C gibt.

> Ich glaube so eine Splitfunktion gibt es da gar nicht?
>  
>
> Ich wollte es so machen, dass ich mir jedes Zeichen
> anschaue, und wenn ich beim Leerzeichen angelangt bin,
> verschiebe ich das darauffolgende um eine Position nach
> vorne (also dorthin, wo sich das Leerzeichen befand), und
> die ersten Buchstaben jedes der Wörter sind dann groß.
>  
> Bsp.
>  
> SoSollEsHinterherAussehen



jup ist eine Möglichkeit: Aber wenn du nur das nächste um 1 nach vorne schiebst hast du dann ja an der stelle ein leerzeichen.

Pseudocodemäßig würd ichs so machen:

for(i=0;i<Arraylänge;i++){
    wenn (Array[i]==" ")  dann{
           for (j=i;j<Arraylänge-1;j++){
                Array[i]=Array[j+1];
           }
    }
}

wobei du dir da nopch was überlegen musst wenn 2 leerzeichen hintereinander stehen. würde dann nicht funktionieren.




ne andre möglichkeit wäre es, das ganze mit 2 arrays zu machen. du gehst das 1 durch und wenn der inhalt != " " ist schreibst du es ins 2 array rein.

j=0  //position im 2 Array

for (i=0;i<Arraygröße;i++){
    falls (Array[i] != " ") dann{
         Array2[j]=Array[i];
         j++;
    }
}

Hier sollte es auch kein Problem mit x Leerzeichen hintereinander geben.

edit:

Was mir noch einfällt. damit du das array2 gleich mit der richtigen größe erstellen kannst kannst du zuerst das erste array

mit

for (i=0;i<Arraygröße;i++){
falls (Array[i] != " ") dann{
         Zähler++;
    }
}
    
durcheghen und dann array2 mit der größe Zähler erstellen.

lg

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorwissen.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]