如何将字符数组转换为const char *字符串?

时间:2013-05-07 02:04:38

标签: c arrays string

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

1 个答案:

答案 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);