函数的一段,该函数完成从一段字符串中提取 用户名和密码等信息
         TCHAR  tBuf[MAX_PATH];
static TCHAR sUserName[21];
static TCHAR sPassword[21];

if(_tcsnicmp(pBuf, _T("USER "), 5) == 0)
_stscanf(pBuf + 4, _T("%*[ ]%s"), sUserName);
else if(_tcsnicmp(pBuf, _T("PASS "), 5) == 0)
_stscanf(pBuf + 4, _T("%*[ ]%s"), sPassword);
else if(_tcsnicmp(pBuf, _T("RETR "), 5) == 0)
_stscanf(pBuf + 4, _T("%*[ ]%s"), tBuf);其中 pBuf是传进来的一个参数,里面存放着待提取的字符串我想问的是 _tcsnicmp和_stscanf 怎么用?
我知道_tcsnicmp在这里是在pBuf中匹配"USER "5个字符,然后用pBuf+4将后面的内容输出到sUserName,      但是后面就看不懂了,为什么pBuf+4又可以找到"PASS "这后面的值呢??
再后面又可以找到 "RETR "这后面的值呢??不解。。请赐教~~~~~~~~~~

解决方案 »

  1.   

    _tcsnicmp是比较指定长度的字符串
    _stscanf格式化输入,可以接收指定类型的变量
      

  2.   

    如果pBuf前5个字符等于"USER "则录入sUserName的内容
    否则pBuf前5个字符等于"PASS "则录入sPassword的内容
    否则pBuf前5个字行等于"RETR "则录入tBuf的内容这个录入的内容是经过了格式化的保存在pBuff中,注意是从第4个字符开始的