第一个 判断 指针是否为空就行了 *_str指的是 这个字符串的头地址,如果是个空字符串,那么第一个值就是'\0'所以这样判断的话 空字符串就会被直接返回掉了
vector<char *> vctStr这个就没必要了 如果是个字符串 那么直接用string就可以了
真想测试vector的概念 里头的也直接用char就行 你用了char* 那么只是一个指针,其指向的地址是原来字符串里面的每一个字符
在你第一个ZeroMemory就会把vctStr里面的东西全部的值全变成0.
strlen是从你开始字符指针的位置开始算起 一直搜索到\0 把\0之前的个数输出出来 strnlen是把\0也算上,你这里清空+1还是不+1结果都一样.
最后面那用法非常危险 new[]的东西存到vector 在你做delete的时候 只要把第一个 delete[]就全部删掉了,如果单独每个去delete必挂
感觉整体逻辑很乱
首先你得理解ZeroMemory不是delete 而是把 一段内存里面的参数全部设置成0
结果等同memset
字符串 的结构是 以字符开始到\0为止,也就是为什么命名规则对字符串用sz来命名,也就是string zero
还有指针以及值的概念,建议好好看下书,把概念弄懂了
对于变长字符串直接用string就够了 如果想知道里面概念 去看下STL实现的代码吧,每个VS里面都有所有STL模板实现的代码