C++ 正在将char*指针复制到char数组变量
我创建了一个单词涂鸦求解器,它基本上计算给定单词的排列,并将其与可用词典进行比较。 但问题是我必须将一个char指针复制到一个数组char变量中来比较它们,我不知道怎么做。 下面是我的代码片段:C++ 正在将char*指针复制到char数组变量,c++,C++,我创建了一个单词涂鸦求解器,它基本上计算给定单词的排列,并将其与可用词典进行比较。 但问题是我必须将一个char指针复制到一个数组char变量中来比较它们,我不知道怎么做。 下面是我的代码片段: #include<fstream> #include<string> #include<ctype> using namespace std; void swap(char *x, char *y) { char temp; temp = *x;
#include<fstream>
#include<string>
#include<ctype>
using namespace std;
void swap(char *x, char *y)
{
char temp;
temp = *x;
*x = *y;
*y = temp;
}
void permute(char *a, int l, int r)
{
char word[25], word1[25];
fstream flame;
if(l == r)
{
word1 = *a; /* <— Error! */
flame.open("dic.sly", ios::in);
while(!flame.eof())
{
flame << word;
tolower(word[0]);
if(strcmp(word, word1) == 0)
cout << word;
}
flame.close();
}
else
{
for(int i = l; i <= r; i++)
{
swap((a + l), (a + i));
permute(a, l + 1, r);
swap((a + l), (a + i));
}
}
}
void main()
{
char str[] = "lonea";
int n = strlen(str);
permute(str, 0, n - 1);
}
#包括
#包括
#包括
使用名称空间std;
无效交换(字符*x,字符*y)
{
焦炭温度;
温度=*x;
*x=*y;
*y=温度;
}
无效排列(字符*a,整数l,整数r)
{
字符字[25],字1[25];
气流火焰;
如果(l==r)
{
word1=*a;/*要将一个C样式字符串复制到另一个C样式字符串,必须使用strcpy(word1,a);
。只有使用std::string
(推荐!)才能使用=
进行分配
您在flame word;
中也有错误
使用std::swap
可能比实现自己的更容易
另一位是tolower(字[0]);
它不修改参数,但返回结果。您应该保存它。Plz Indent如果您能修改缩进以使代码更易于阅读,将不胜感激。这里可以找到一些好的缩进示例:#include
--这不是C样式字符串的正确标题。correct头是
。
头是用于std::string
,您在程序中根本不使用它。您确实应该避免使用名称空间std
-这是一个坏习惯,而且在您不期望的情况下。习惯使用名称空间前缀(<代码> STD<代码>是非常短的),或者只导入您需要的名称到最小的合理范围。此代码是为Turbo C++编译器编写的(学术原因),抱歉对不正确的头文件