C++ I';我用c+编写了组合程序+;但没有产出,有人能说出原因吗?
这个程序打印字符串组合没有结果,有人能帮我吗C++ I';我用c+编写了组合程序+;但没有产出,有人能说出原因吗?,c++,combinations,C++,Combinations,这个程序打印字符串组合没有结果,有人能帮我吗 #include <iostream> #include <string> using namespace std; void comb(char *inp) { int i, j, k; int len = strlen(inp); for (i = 0; i < len - 2; i++) { for (j = i + 1; j < len - 1; j++
#include <iostream>
#include <string>
using namespace std;
void comb(char *inp)
{
int i, j, k;
int len = strlen(inp);
for (i = 0; i < len - 2; i++)
{
for (j = i + 1; j < len - 1; j++)
{
for (k = j + 1; k < len; k++)
{
printf("%c%c%c\n", inp[i], inp[j], inp[k]);
}
}
}
}
//======================================================================
int main ()
{
char *str;
cout <<"enter your string\n";
cin >> str;
comb(str);
return 0;
}
#包括
#包括
使用名称空间std;
空梳(字符*inp)
{
int i,j,k;
int len=strlen(inp);
对于(i=0;i
在这种情况下,我建议使用std::string
而不是char[]
。否则,您将需要动态分配内存
#include <iostream>
#include <string>
void comb(std::string inp)
{
int len = inp.size();
for (int i = 0; i < len - 2; i++)
{
for (int j = i + 1; j < len - 1; j++)
{
for (int k = j + 1; k < len; k++)
std::cout << inp[i] << inp[j] << inp[k] << std::endl;
}
}
}
int main ()
{
std::string str;
std::cout << "enter your string\n";
std::cin >> str;
comb(str);;
return 0;
}
#包括
#包括
空梳(标准::字符串inp)
{
int len=inp.size();
对于(int i=0;i std::cout这甚至不会编译:抱歉,我更新了char*str代码;std::coutstr;comb(str);返回0;您应该将该代码写入您的问题中。“编写”。始终在“我有”或“我有”之后使用过去分词。发布实际代码,而不是从内存中重新键入的近似值。如果使用std::string
,则必须将
更改comb(std::string inp)
添加到comb(const std::string&inp)
。这看起来也像是家庭作业。您不应该只是给OP一个完整的解决方案。您还可以使用comb复制打字(str);
有时包含
。虽然我同意使用常量和
是一种很好的做法。@PhilippBraun你不应该发布有时有效的代码。如果std::string
生活在
中,那么你应该使用
,然后你就知道它总是有效的。