将const char转换为数组

4

我正在尝试将一个const char转换为char...以下是我的代码:

bool check(const char* word)
{

char *temp[1][50];

temp = word;

return true;
}

这是一个接受const char参数的函数。我需要将该const char转换为char。当我现在运行此代码时,编译器会抛出以下错误:

dictionary.c:28:6: error: array type 'char *[1][50]' is not assignable
temp = word;

我该如何正确地完成这个转换?

谢谢, 乔希

2个回答

6
#include <string.h>
bool check(const char* word)
{
    char temp[51];
    if(strlen(word)>50)
        return false;
    strncpy(temp,word,51);
    // Do seomething with temp here
    return true;
}

1
好的,太棒了,这个可以工作了,现在我需要实现程序的下一部分,即检查存储在temp中的单词是否是字典中正确拼写的单词...为此,我有一个全局变量来保存字典。以下是定义它的代码,以便您知道我正在处理什么:char *result = NULL; 我需要能够告诉是否在“result”中有一个字符串等于temp。如果找到相同的字符串(表示单词拼写正确),则需要返回true,否则返回false。如果您也可以帮助我解决这个问题,我将非常感激! - Joshua McDonald
2
@JoshuaMcDonald,你应该提出一个新问题。 - luizfls

1
如果您想要一个非常量版本,您需要复制该字符串:
char temp[strlen(word) + 1];
strcpy(temp, word);

或者:

char * temp = strdup(word);

if(!temp)
{
    /* copy failed */

    return false;
}

/* use temp */

free(temp);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接