• C++知识点总结(二)


    1.字符串的部分拷贝

          ① 利用标准库函数strncpy(),可以将一字符串的一部分拷贝到另一个字符串中。strncpy()函数有3个参数:第一个参数是目录字符串;第二个参 数是源字符串;第三个参数是一个整数,代表要从源字符串拷贝到目标字符串中的字符数。如下:  

    #include<stdio.h>
    #include<stdlib.h>
    #include <string.h>
    int main(int argc, char **argv)
    {
        char buf[20]="6.0 1257487794/n";
        char da[5]={0};
        char num[15]={0};    
        int i=0, j=0;
        strncpy(da, buf, 3);
        strncpy(num, buf+(strlen(buf)-11) , 10);
        printf("buf= %s, da= %s, num= %s/n", buf, da, num);  
        return 0;
    }
           在上例中,第一次调用strncpy()函数时,它将源字符串的头3个字符拷贝到da中。第二次调用strncpy()函数时,它将源字符串的最后10个字符拷贝到num中,其实现过程为:

        (1)用strlen()函数计算出buf字符串的长度,即strlen(buf)。
        (2)将buf的长度减去11(10是将要拷贝的字符数再加中间的‘ ’字符),得出buf中剩余的字符数,即 
           pstrlen(buf)-11。
        (3)将strlen(buf)-11和buf的地址相加,得出指向buf中倒数第10个字符的地址的指针, 即buf+
           (strlen(buf)-11)。这个指针就是strncpy()函数的第二个参数。
        (4)在strncpy()函数的第三个参数中指定要拷贝的字符是10。

            倘若用string来定义的变量。则可以使用构造函数来处理,构造函数如下。

    String(Char[], Int32, Int32)

        参数分别为字符数组指针,第一个字符起始位置(偏移量),需要拷贝的字符数。示例如下。输出s2=cde

    String s1("abcdefg");
    String s2(s1,2,3);
              实际上,s1处也可以使用char*类型参数

    2.常量指针和指针常量

    思考方法:const char * name  从右往左看,const离哪个(是char还是指针名)近就是修饰哪个

    ①const * char  name   常量字符,指针指向的内容是常量且不可变,指向的地址可变 ②const  char * name 常量字符,指针指向的内容是常量且不可变,指向的地址可变 ③char * const   name 常量指针,指针指向的地址是常量且不可变,指向的内容可变 ④const char * const  name 常量指针以及常量字符,指针指向及指针指向的内容都不可变

    3.new变量的初始化

     注意new 变量可以采取下列方式初始化:

    int* intp=new int(10);//right!
    char* charp=new char('A');//right
    int* intp1=new int[5](10);//wrong

    4.Switch表达式

         Java: int,short,char,byte四种基本类型以及其包装类或者对应的表达式。还有枚举类型enum。

    C++: int,short,char,bool,long,enum。6种类型和其对应表达式。

    使用注意:

    倘若某个case不带break。则其后的case的代码块都会执行,直到遇到break

    倘若多个case使用相同的表达式,则该表达式只会执行一次。

    某个case块下可以不用{ }。

    例如:

    int sum=0;
    	switch(sum)
    	{
    	case 0: 
    	case 1 : 
    		cout<<"  1";
    	case 2: 
    		cout<<"  2"<<endl;break;
    	case 3:
    		cout<<"  3"<<endl;break;
    	}
    sum=0 时输出 1 2。



  • 相关阅读:
    Linux crontab定时执行任务 命令格式与详细例子
    git的color configura
    Linux不用使用软件把纯文本文档转换成PDF文件的方法
    linux sar命令详细说明相关参数
    linux下sar tool command note
    Linux see 网卡当前流量
    安装调试Installing Odoo
    寻找[nginx] 由Lua 粘合的Nginx生态环境-- agentzh
    git检查与放弃本地的代码修改情况
    发现linux shell中$0,$?,$!等的特殊用法
  • 原文地址:https://www.cnblogs.com/engineerLF/p/5393139.html
Copyright © 2020-2023  润新知