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
。
如何将 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
。