删除重复的字母 - 字修正

时间:2016-06-05 07:31:18

标签: c++

我编写的代码会检查前两个字母是否相同,它会删除一个并更正单词。但它不起作用是什么问题?

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];
}

}

2 个答案:

答案 0 :(得分:1)

该行:

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

需要:

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

事实上,几乎所有对i的引用都需要适当的循环变量。

此外,大多数文字5需要4代替。 (您希望遍历值0,1,2和3.您不想访问word[4](它不存在)。

最后,行:

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

应该是:

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

因为您要访问word[y+1]

答案 1 :(得分:0)

您不需要循环直到阵列结束。你需要去最后一个之前的地方。

此外,您还需要将索引中的 i 更改为循环。

  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];
}
}