Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 正在将char*指针复制到char数组变量_C++ - Fatal编程技术网

C++ 正在将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;

我创建了一个单词涂鸦求解器,它基本上计算给定单词的排列,并将其与可用词典进行比较。 但问题是我必须将一个char指针复制到一个数组char变量中来比较它们,我不知道怎么做。 下面是我的代码片段:

#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++编译器编写的(学术原因),抱歉对不正确的头文件