我正在设计一个程序,它具有一个从输入中查找单词的函数,然后将它们发送到另一个函数以与字典(const char*
“字符串”数组进行比较)。
我想使用strncmp()
中的<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);
答案 0 :(得分: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);