C - 拆分 TCHAR

C - Split TCHAR

如何将 TCHAR 拆分为其他变量? 示例:

TCHAR comando[50], arg1[50], arg2[50];
Mensagem msg;
_tcscpy(msg.texto, TEXT("MOVE 10 12"));

所以,msg.texto 有字符串“MOVE 10 12”,我希望变量 comando[50] 为“MOVE”,变量 arg1 为“10”,并且变量 arg2 为“12”。我怎样才能做到这一点? 对于一些可能的英语错误,我们深表歉意。 提前致谢!

已解决:

TCHAR *pch;
    pch = _wcstok(msg.texto, " ");
        _tcscpy(comando, pch);
        pch = _wcstok(NULL, " ");
        _tcscpy(arg1, pch);
        pch = _wcstok(NULL, " ");
        _tcscpy(arg2, pch);

对于 TCHAR, you could use strtok,如本例所示:

#include <stdio.h>
#include <string.h>

typedef char TCHAR;

int main ()
{
  TCHAR str[] ="MOVE 10 12";
  TCHAR * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ");
  }
  return 0;
}

如果是 wchar_t,那么您可以使用 wcstok():

wchar_t *wcstok( wchar_t *strToken, const wchar_t *strDelimit );

要使用不可知的版本,您应该使用 _tcstok