第一篇文章

简介: FIRST ARTICLE.

This is first article, just for test this blog.

从下面的插入代码可以看出,这个代码插入的功能,很是不足。Tab 键被滤掉了。只能用空格进行缩进。

#include <stdio.h>
void ParseHardwareID(LPCTSTR pHardwareID, LPTSTR pVID, int cchVID, LPTSTR pPID, int cchPID);
int main(int argc, char* argv[])
{
    //main 函数里是用 4 个空格进行缩进的。
    TCHAR VID[8], PID[8];

    ParseHardwareID(_T("USB\VID_046D&PID_0826&REV_0010&MI_02"), 
        VID, _ARRAYSIZE(VID), PID, _ARRAYSIZE(PID));

    _tprintf_s(_T("VID: %s, PID: %s;\n"), VID, PID);

    printf("你们觉得这里好用吗?");
    return 0;
}

void ParseHardwareID(LPCTSTR pHardwareID, LPTSTR pVID, int cchVID, LPTSTR pPID, int cchPID)
{
bool bVIDFound = false;
bool bPIDFound = false;
const TCHAR *p1 = pHardwareID;
const TCHAR *pStopPos = NULL;
int cchCopy = 0;
while(*p1)
{
if(!bVIDFound && _tcsnicmp(p1, _T("VID_"), 4) == 0)
{
pStopPos = p1 + 4;
while(*pStopPos != 0 && *pStopPos != _T('&'))
{
++pStopPos;
}
cchCopy = min(cchVID - 1, pStopPos - p1 - 4);
_tcsncpy_s(pVID, cchVID, p1 + 4, cchCopy);

//append null-terminator;
pVID[cchCopy] = 0;

p1 = pStopPos;
bVIDFound = true;
continue;
}

if(!bPIDFound && _tcsnicmp(p1, _T("PID_"), 4) == 0)
{
pStopPos = p1 + 4;
while(*pStopPos != 0 && *pStopPos != _T('&'))
{
++pStopPos;
}
cchCopy = min(cchPID - 1, pStopPos - p1 - 4);
_tcsncpy_s(pPID, cchPID, p1 + 4, cchCopy);

//append null-terminator;
pPID[cchCopy] = 0;

p1 = pStopPos;
bPIDFound = true;
}
if(bVIDFound && bPIDFound)
break;
++p1;
}
if(!bVIDFound) pVID[0] = 0;
if(!bPIDFound) pPID[0] = 0;
}


我的博客园博客:    http://www.cnblogs.com/hoodlum1980

我的知乎个人主页: hoodlum1980


-- hoodlum1980
目录
相关文章
|
2月前
第一篇文章
禁用不用的ip
13 0
|
7月前
|
算法 机器人 C++
C++零基础全面教程(开篇介绍)
C++零基础全面教程(开篇介绍)
76 0
|
前端开发 C# 数据库管理
(3) MasaFramework 入门第三篇,使用MasaFramework
(3) MasaFramework 入门第三篇,使用MasaFramework
110 0
(3) MasaFramework 入门第三篇,使用MasaFramework
|
缓存 JavaScript 前端开发
面试题练习第一篇
面试题练习第一篇
96 0
|
算法 JavaScript Devops
2022年的第一篇总结
今年有个新的计划,就是每过一段时间,比如说两个月,对自己的工作和生活进行总结和反思。
|
存储 IDE 编译器
C#学习(第二篇)
在上篇文章中我们学习了C#强大的编程功能、C#发展史、C#开发环境、C#和.Net Framework的关系、C#集成开发环境(IDE)、C#程序结构以及编译并执行程序。而这次我要向大家隆重介绍C#基本语法、C#关键字以及C#数据类型。
C#学习(第二篇)
|
存储 安全 编译器
C#学习(第三篇)
在上篇文章中我们学习了C#基本语法、C#关键字以及C#数据类型,这次我将带着大家学习C#变量、C#数据类型转换以及C#运算符。
C#学习(第三篇)

相关实验场景

更多