【发布时间】:2020-06-30 06:55:27
【问题描述】:
我正在尝试编写具有两个功能的代码:一个确定字符串是否为 isogram,另一个用于将结果(真或假)打印到控制台(用于解决任务的目的)。
虽然有些事情无法正常工作。而且我想知道我需要在哪里改进代码(可能全部......)。我会很感激任何建议:)
#include <iostream>
#include<string>
#include<bits/stdc++.h>
#include<iomanip>
bool find_Isogram (std::string str)
{
std::sort(str.begin(), str.end()); //sorted the string for the for loop (e.g. eHllo)
int length = str.length();
for (int i = 0; i < length; i++)
{
if (str.at(i) == str.at(i+1))
{
return false;
break;
}
else
{
return true;
}
}
}
void print_result()
{
std::string str;
if (!find_Isogram (str))
{
std::cout << "false" << std::endl;
}
else
{
std::cout << "true" << std::endl;
}
}
int main()
{
find_Isogram ("gdtub");
print_result();
return 0;
};
````````````````````````````````````````````````````
【问题讨论】:
-
另外,在
return之后不需要break -
添加到@ΦXocę 웃 Пepeúpa ツ 的帖子,你认为你的程序会对输入
ABA做什么? -
等值线是一个不包含重复字母的单词,例如'等值线' :)
-
请告诉我们什么“事情不正常”以及您如何发现它们没有正常工作。例如向我们展示输入、预期和实际输出。
-
例如,如果我输入“tree”,我希望它返回 false,因为“tree”不是等值线。这基本上就是我需要知道的全部内容。我使用了头文件,因为我尝试了在论坛中检查想法时发现的不同方法。不,说实话,我不太了解那个头文件;)还在学习......