【问题标题】:How to use trim() text LPWSTR type in WIN32 API如何在 WIN32 API 中使用 trim() 文本 LPWSTR 类型
【发布时间】:2013-03-26 06:45:55
【问题描述】:

我有:LPWSTR str=" Nguyen Phong Sac " 如何修剪 str。 意思是:str="Nguyen Phong Sac"

【问题讨论】:

  • 你使用什么语言?
  • 对于它的价值,这个问题中唯一的“代码”行是不正确的。它的弦很宽。此外,文字是只读的(或至少应该是只读的),但被分配给读/写指针 var(类型错误)。

标签: c string winapi trim


【解决方案1】:

试试这个。请注意,此功能尚未经过彻底测试,只是为了了解一下。

void Trim(TCHAR *buffer)
{
  int i = 0;

  while (buffer[i++] == ' ' && buffer[i] != 0) 
  {
  }

  int first = i - 1 ;

  i = lstrlen(buffer)  ;

  while (buffer[--i] == ' ' && i > 0) 
  {
  }

  int last = i + 1 ;

  int j = 0 ;
  for (i = first; i <= last - first; i++)
    buffer[j++] = buffer[i] ;

  buffer[j] = 0 ;
}

【讨论】:

  • 在我看来,使用 isspace 会更好
  • 也不是更好,这些古老的 C 运行时函数不能很好地处理 Unicode。至少使用 iswspace(),但请考虑 Unicode 中的哪种字形被 CRT 视为空格字符。有很多。
猜你喜欢
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 2010-10-02
  • 1970-01-01
  • 2022-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多