0

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

我想使用strncmp()from<string.h>并且自然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);
4

1 回答 1

2

只要您的数组末尾有一个空终止符(一个 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);
于 2013-05-07T02:10:14.820 回答