2016-06-05 11 views
1

Ich habe Code geschrieben, der die ersten beiden Buchstaben überprüft, ob sie gleich sind, wird es entfernen und das Wort korrigieren. aber es funktioniert nicht, was ist das Problem?Entfernen von doppelten Buchstaben-Word-Korrektur

char word[4]; 
int i; 
cout<<"Enter Word:"; 
for(i=0;i<5;i++) cin>>word[i]; 


for(int y=0;y<5;y++){ 
if(word[i]==word[i+1]){ 
for(int k=y;k<5;k++){ 
    word[i]=word[i+1]; 
} 
    for(int g=0;g<5;g++) 
cout<<word[i]; 
} 

}

+0

für den Zugriff werden: Schleife! – STF

Antwort

0

Sie brauchen nicht bis zum Ende des Arrays in einer Schleife. Du musst bis zum Platz vor dem letzten gehen.

Und auch Sie müssen die i im Index zu den Schleifen ändern.

char word[4]; 
    int i; 
    cout<<"Enter Word:"; 
    for(i=0;i<5;i++) 
     cin>>word[i]; 



for(int y=0;y<4;y++){ 
if(word[y]==word[y+1]){ 
for(int k=y;k<4;k++){ 
    word[k]=word[k+1]; 
} 
for(int g=0;g<5;g++) 
    cout<<word[g]; 
} 
} 
+0

Danke :) außerdem wenn ich setze die Array-Größe zu 15 als was wird Schleifen Indexierung sein? –

+0

@ Smärtßõý dann werden Sie die 5 bis 12 und die 4 bis 13 ändern. Wenn es eine gute Antwort war, bitte markieren Sie als Antwort und stimmen Sie – STF

1

Die Linie:

if(word[i]==word[i+1]){ 

Muss sein:

if(word[y]==word[y+1]){ 

In der Tat, fast alle Verweise auf i an die entsprechende Schleifenvariable sein müssen.

Zusätzlich müssen die meisten wörtlichen 5 s stattdessen 4 s sein. (Sie wollen 0 durch die Werte zu durchlaufen, 1, 2 und 3. Sie wollen nicht word[4] zugreifen (es existiert nicht)

schließlich die Linie.

for(int y=0;y<5;y++){ 

sollte (; y <** 5 **; y ++ int y = 0) - Sie die 5 bis 4. und auch in der nächsten ändern müssen

for(int y=0;y<3;y++){ 

weil Sie word[y+1]

+0

Danke Buddy :) Darüber hinaus wenn ich die Array-Größe auf 15 als was wird sei Schleifenindizierung? –

+0

Fast alle Indizes sollten 'sizeof (Wort)' sein. Man sollte "sizeof (Wort) -1" sein. Wenn Sie es so schreiben, können Sie die Anzahl auf den Inhalt Ihres Herzens ändern. –

+0

Okay, letzte Pls, ich möchte der Benutzer eine beliebige Länge der Zeichenfolge eingeben, wie kann ich das einstellen? –

Verwandte Themen