欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

知识点汇总

程序员文章站 2022-07-12 15:40:53
...

1、strrchr()函数:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL。
2、strstr() 函数:搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。

3、

do
{
    ...
}while(0)  

有个好处里面运行可以直接break到下面代码而不用goto

4、使用strncpy_s 比 使用strncpy更加安全

5、 int const *  |  p  
 p就是一个普通的指针变量,可以指向任意一个int值,但是指向的int值是一个不变常量
 int *        |   const p
 p是const常量,p是const所以不能变,也就是p指向的地址不可变,但是指向的地址中对应
 的内存是可改变的

6、Debug编译成功运行时提示缺失ACEd.dll等dll,就是要把这些文件放入到输出文件目录(在VS配置属性链接器常规里面设置输出文件路径)

7、好多这种用法:

class CDownload:
{
public:
<strong>    static CDownload &Instance()
      {
             static CDownload s;
             return s;
      }</strong>
    void Start(uString strPostfix); 
}
<strong>CDownload::Instance().</strong>Start(strPostfix);
</pre><pre code_snippet_id="325463" snippet_file_name="blog_20140504_2_7731808" name="code" class="cpp">

 

8、在宏定义define中经常看到两个字符串##和#,这里把它的用法做一下说明:      
    ##是一个连接符号,用于把参数连在一起         
         例如: > #define  FOO(arg)   my##arg       则 > FOO(abc)  相当于   myabc           
   #是“字符串化”的意思。出现在宏定义中的#是把跟在后面的参数转换成一个字符串         
         例如: > #define STRCPY(dst, src)   strcpy(dst, #src)   则  > STRCPY(buff, abc) 相当于 strcpy(buff, "abc")        
   另外,如果##后的参数本身也是一个宏的话,##会阻止这个宏的展开 。

 

9、strcpy是拷贝字符串,以\0为标志结束(即一旦遇到数据值为0的内存地址拷贝过程即停止)

     strcpy的原型为 char *strcpy(char *dest, const char *src)

    memcpy是给定来源和目标后,拷贝指定大小n的内存数据,而不管拷贝的内容是什么(不仅限于字符)

     memcpy的原型为 void *memcpy(void *dest, const void *src, size_t n);

 

STL之copy函数原型:

template<class InputIterator, class OutputIterator>
   OutputIterator copy(
      InputIterator _First, 
      InputIterator _Last, 
      OutputIterator _DestBeg
   );

    //如: 将数组向左移动两位  

    copy(src + 2, src + 7, src);