c - 如何获取 wchar_t* 的最后 n 个字符

标签 c winapi

给定类似的内容:

wchar_t filename[] = L"program.exe";

如何获取最后 4 个字符来测试是否以“.exe”结尾?

最佳答案

您可以使用 wcslen() 计算数组的长度并与 wcscmp() 进行比较:

#include <wchar.h>

wchar_t filename[] = L"program.exe";

size_t len = wcslen(filename);
if (len >= 4 && !wcscmp(filename + len - 4, L".exe")) {
    /* the extension is .exe */
} else {
    /* filename too short or extension not .exe */
}

除非您正在针对 Windows 进行开发(如文件扩展名所示),否则我强烈建议您远离 wchar_t API 并在程序中使用 UTF-8 编码。

关于c - 如何获取 wchar_t* 的最后 n 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920889/

相关文章:

c++ - WinAPI - C++ - 如何完全删除/清除窗口中的所有内容?

c - 使用重定向运算符 < 后检索标准输入

c# - 这是三元运算符的合理使用吗?

c - 如何优化 malloc() 或动态填充未知大小的内存?

winapi - 为什么WNetOpenEnum会得到ERROR_INVALID_ADDRESS(487)结果?

c++ - Windows API - 使用多个组合键注册热键

c - 无法在 Ubuntu 14.04 上调试 libc 源

c - 如何设置 make 来查找需要编译的自动生成文件的依赖关系

c++ - 为什么 WinAPI 的 GetSystemInfo 告诉我我的四核机器有 8 个内核?

c++ - 相当于Qt中的Win32 'SetProp'?