我正在设计一个程序,该程序具有一个函数,该函数从输入中查找单词,然后将它们发送到另一个函数以与字典(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);