C语言 如何将字符数组转置为const char* string



我正在设计一个程序,该程序具有一个函数,该函数从输入中查找单词,然后将它们发送到另一个函数以与字典(const char*"字符串"数组)进行比较。

我想使用<string.h>中的strncmp(),而strncmp()自然希望两个参数都是const char*。因为我每次解析一个字符的输入,所以我把单词放入一个数组中。

我如何将字符数组转换为const char*"字符串"?我不想承认,但我真的不知道该怎么做。我四处找了找,没找到答案。

我想到的最好的是使用memcpy()…不确定是否有更好的方法?

TL;DR将字符数组转换为const char*"字符串"的好方法是什么?

例如

char someArray[5] = "word"; /* assume generated char by char, null terminated */
const char* new_format = foo(someArray);

只要你的数组在末尾有一个空结束符(一个0字节),它就可以在任何你需要指针的地方使用,因为数组会衰变成指向它们的第一个元素的指针:

char someArray[5] = "word";
char *pointer = someArray;  // That's it!
strncmp(pointer, "something else", 5);
// Or, more simply:
char someArray[5] = "word";
strncmp(someArray, "something else", 5);

最新更新