条件断点
字符串
wstring- 具体是用那个表达式,可以先在监视窗口查看该变量下面的内容
allocator、_Myval2、_Bx、_Buf和_Ptr
|
1 2 3 4 5 |
// 对于较短的字符串(小字符串优化 SSO) wcsstr(name._Mypair._Myval2._Bx._Buf, L"回收站") != 0 // 对于较长的字符串(堆分配) wcsstr(name._Mypair._Myval2._Bx._Ptr, L"回收站") != 0 |
|
1 |
wcscmp(name._Mypair._Myval2._Bx._Buf, L"回收站") == 0 |
string- 参考
wstring
- 参考
CString
|
1 |
wcscmp(name.m_pszData, L"回收站") == 0 |
其他
多字节字符串函数总结
- 字符串比较
|
1 2 3 4 5 6 7 8 |
strcmp(str1, str2) // 比较两个字符串,相等返回0 strncmp(str1, str2, n) // 比较前n个字符 stricmp(str1, str2) // 不区分大小写比较 (Windows) _stricmp(str1, str2) // 不区分大小写比较 (MSVC) strnicmp(str1, str2, n) // 不区分大小写比较前n个字符 (Windows) _strnicmp(str1, str2, n) // 不区分大小写比较前n个字符 (MSVC) strcasecmp(str1, str2) // 不区分大小写比较 (Linux/POSIX) strncasecmp(str1, str2, n) // 不区分大小写比较前n个字符 (Linux/POSIX) |
- 字符串查找
|
1 2 3 4 |
strchr(str, ch) // 查找字符首次出现的位置 strrchr(str, ch) // 查找字符最后出现的位置 strstr(str, substr) // 查找子串首次出现的位置 strpbrk(str, charset) // 查找字符集中任意字符首次出现的位置 |
- 字符串复制
|
1 2 3 4 |
strcpy(dest, src) // 复制字符串 strncpy(dest, src, n) // 复制最多n个字符 strcpy_s(dest, size, src) // 安全版本复制 (C11/MSVC) strncpy_s(dest, size, src, n)// 安全版本复制n个字符 |
- 字符串连接
|
1 2 3 4 |
strcat(dest, src) // 连接字符串 strncat(dest, src, n) // 连接最多n个字符 strcat_s(dest, size, src) // 安全版本连接 strncat_s(dest, size, src, n)// 安全版本连接n个字符 |
- 字符串长度
|
1 2 3 |
strlen(str) // 获取字符串长度 strnlen(str, maxlen) // 获取字符串长度(最大maxlen) strnlen_s(str, maxlen) // 安全版本获取长度 |
- 字符串分割
|
1 2 3 |
strtok(str, delim) // 分割字符串(非线程安全) strtok_s(str, delim, context)// 安全版本分割(MSVC) strtok_r(str, delim, saveptr)// 可重入版本分割(POSIX) |
- 其他常用函数
|
1 2 3 4 5 6 |
strdup(str) // 复制字符串到新分配的内存 _strdup(str) // MSVC版本 strspn(str, charset) // 返回只包含charset字符的前缀长度 strcspn(str, charset) // 返回不包含charset字符的前缀长度 strrev(str) // 反转字符串 (非标准,MSVC有) _strrev(str) // MSVC版本 |
宽字符串函数总结
- 字符串比较
|
1 2 3 4 5 6 7 8 |
wcscmp(wstr1, wstr2) // 比较两个宽字符串 wcsncmp(wstr1, wstr2, n) // 比较前n个宽字符 wcsicmp(wstr1, wstr2) // 不区分大小写比较 (Windows) _wcsicmp(wstr1, wstr2) // 不区分大小写比较 (MSVC) wcsnicmp(wstr1, wstr2, n) // 不区分大小写比较前n个字符 (Windows) _wcsnicmp(wstr1, wstr2, n) // 不区分大小写比较前n个字符 (MSVC) wcscasecmp(wstr1, wstr2) // 不区分大小写比较 (POSIX) wcsncasecmp(wstr1, wstr2, n) // 不区分大小写比较前n个字符 (POSIX) |
- 字符串查找
|
1 2 3 4 |
wcschr(wstr, wch) // 查找宽字符首次出现的位置 wcsrchr(wstr, wch) // 查找宽字符最后出现的位置 wcsstr(wstr, wsubstr) // 查找宽字符子串首次出现的位置 wcspbrk(wstr, wcharset) // 查找字符集中任意字符首次出现的位置 |
- 字符串复制
|
1 2 3 4 |
wcscpy(dest, src) // 复制宽字符串 wcsncpy(dest, src, n) // 复制最多n个宽字符 wcscpy_s(dest, size, src) // 安全版本复制 wcsncpy_s(dest, size, src, n)// 安全版本复制n个字符 |
- 字符串连接
|
1 2 3 4 |
wcscat(dest, src) // 连接宽字符串 wcsncat(dest, src, n) // 连接最多n个宽字符 wcscat_s(dest, size, src) // 安全版本连接 wcsncat_s(dest, size, src, n)// 安全版本连接n个字符 |
- 字符串长度
|
1 2 3 |
wcslen(wstr) // 获取宽字符串长度 wcsnlen(wstr, maxlen) // 获取宽字符串长度(最大maxlen) wcsnlen_s(wstr, maxlen) // 安全版本获取长度 |
- 字符串分割
|
1 2 3 |
wcstok(wstr, wdelim) // 分割宽字符串(非线程安全) wcstok_s(wstr, wdelim, context)// 安全版本分割(MSVC) wcstok(wstr, wdelim, saveptr) // POSIX版本(第三个参数) |
- 其他常用函数
|
1 2 3 4 5 6 |
wcsdup(wstr) // 复制宽字符串到新分配的内存 _wcsdup(wstr) // MSVC版本 wcsspn(wstr, wcharset) // 返回只包含wcharset字符的前缀长度 wcscspn(wstr, wcharset) // 返回不包含wcharset字符的前缀长度 wcsrev(wstr) // 反转宽字符串 (非标准) _wcsrev(wstr) // MSVC版本 |
字符串转换函数
|
1 2 3 4 |
mbstowcs(dest, src, n) // 多字节字符串转宽字符串 wcstombs(dest, src, n) // 宽字符串转多字节字符串 mbstowcs_s(...) // 安全版本 wcstombs_s(...) // 安全版本 |
注意
- 带
_前缀的是MSVC特有版本(如_stricmp)
声明:本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!