c - 将具有 NULL 字节的 C 字符串转换为 char 数组

标签 c winapi

我正在使用具有多项选择功能的 GetOpenFileName。选取的文件在 LPSTR 中返回。在此 LPSTR 中,所选文件由 NULL 字节分隔。我想将 LPSTR 拆分成一个数组,然后遍历该数组。

在 PHP 中我会这样做:

 $array = explode("\0", $string);

但由于我是 C 的新手,所以我不知道自己在做什么。

最佳答案

你可以这样做来遍历字符串:

char *Buffer;             // your null-separated strings
char *Current;            // Pointer to the current string
// [...]
for (Current = Buffer; *Current; Current += strlen(Current) + 1)
  printf("GetOpenFileName returned: %s\n", Current);

如果确实有必要,您可以修改此代码以创建数组。

关于c - 将具有 NULL 字节的 C 字符串转换为 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1911053/

相关文章:

c - 如何使用 strtol 解析整数但将 "0"保留为有效值?

c# - 具有显式(手动)字段布局的 C 结构/union ?

c++ - MessageBox 上的 Visual Studio 2015 WinAPI 错误

c - 插入和修改 ListView 项目

c - C 中的多线程问题

winapi - 私有(private)堆或自行管理内存

c - 在 gcc 中激活 int - float 操作的警告

c - Valgrind 地址在线程的 1 堆栈上

使用共享库时 C++ 代码未定义对函数的引用

c++ - 在 WM_NCDESTROY 上释放自己安全吗?