删除重复的字母 - 单词更正

Removing duplicate letters-Word correction

本文关键字:单词更 删除      更新时间:2023-10-16

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

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

}

行:

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]

你不需要循环到数组的末尾。 你需要去到最后一个之前的地方。

您还需要将索引中的 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];
}
}