【发布时间】:2022-01-10 12:01:09
【问题描述】:
我正在尝试创建遍历单词并尝试查找是否有多次使用的字母的逻辑。如果一个字母重复,则将其更改为“1”,如果不是,则将其更改为“2”。示例:雷达 - 11211,亚马逊 - 121222,空手道 - 212122。 具体问题是,如果我使用 for(),每个字母都会与最后一个字母进行比较。另外我不明白如何使用 for() 检查最后一个字母。 最后一个字母总是 2。
这是我的代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{ string word;
char bracket1('1');
char bracket2('2');
cout << "Write your word: ";
cin >> word;
for (int i = 0; i < word.length(); ++i)
{
char let1 = word[i];
char let2 = word[i+1];
if (let1 == let2)
{ word[i] = bracket1;}
else
{ word[i] = bracket2; }
} cout << word;
}
示例:测试返回 1e22 而不是 1221
【问题讨论】: