• C语言基础知识小总结(2)


    上个总结比较笼统,下面写的稍微详细点吧算是。

     

    一、控制台屏幕打印

      1、putchar();   格式: void putchar(char c);  //直接把一个字符输出到屏幕上

      2、printf();    格式: void printf(格式字符串,参数1,参数2,参数3...参数n);

      

      标准错误输出流:stderr

     

    二、读取键盘输入(前两个包含在头文件<conio.h>中,第三个包含在头文件<stdio.h>中)

     

      1、getchar();  格式:int getchar(void);  //等待用户输入并读取字符的数值(ascII)在用户按下回车键后才返回相应的第一个输入字符的数值

      2、getch();  格式: int getch(void);   //同上,不过在使用的时候,再按下字符之后立刻返回对应的数值

      3、getche();             //在使用的时候2按下的字符不显示在屏幕上,而这个会显示在屏幕上,其他同上

      4、scanf(); 格式: scanf(格式控制字符串,&参数1,&参数2...参数n);

     

    三、逻辑判断 

     

        if

        if-else

        if-else if-else

        swicth

      条件选择结构:  表达式1? 表达式2 : 表达式3;  例如:球两个数的最大值:(x>y) ? x : y ;

     

    四、循环结构

     

      1、while循环                    2、do-while循环

      while(条件)                       do

        {                           {

        循环体;                        循环体;

        }                           }while(条件);

      3、for循环(表达式可省略,在for循环可添加逗号表达式)  4、高级流程控制 

      for(n=3,i=0;i<20;i++,n++)                  (1)、goto 任意跳转(只能在本函数中)

      {                                  goto lable;

        循环体;                          lable:

      }                                   ....

                                     (2)、break 结束循环

                                     (3)、continue 结束本次循环

     

    五、函数

     

      1、return在函数中结束函数,返回到主调函数

      2、函数在C语言中和变量的性质是一样的,如果在定义之前调用,必须先声明,否则出错,不在定义之前调用,则不必声明。

          例: int fun1(参数列表);

             int fun1(参数列表)

              {

                函数体;

              }

      3、函数可嵌套调用

          

      4、递归(调用一个函数的过程中直接或间接的调用自身)

        例:1、 fun1(x)                        2、fun1(x)    

            {                      {

              ...                     fun2(x);

              fun1(x);                 }

            }                      fun2(x)

                                   {fun1(x);}

      5、变量的存储类别

        (1)、静态变量:在程序进行期间是固定的存储空间方式

        (2)、动态存储变量:在程序进行期间根据需要进行分配存储空间的方式

            注意:内存提供的存储空间分为程序区,静态区,动态区。  静态变量和全局变量有默认值0,其他变量的默认值都是随机分配的

              自动变量:(auto) int i;(默认不带auto的都是自动变量)

              内部函数:声明函数时前面加 static (只能在本文件中使用)

              外部函数:声明函数时前面加 extern(默认不带extern时就是外部函数,可在整个程序中使用)

     

    六、数组

     

      一维数组: int array[100]={1,2,3...100};

           float fArray[100];

      二维数组: int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

            float fArray[][5]={{1,2,3,4,5}};   //在初始化时可以省略一维的大小

            二维数组array[3][4]相当于是两个一维数组嵌套,如下图:

            

      字符数组:

          char str[]={'1','2','k'};

          char str[]="hello world";

            

          char str2[123];

          scanf("%s",str2);

     

    七、字符串 (在头文件<string.h>中定义)

     

    各个函数如下:

      1、求字符串长度函数 strlen();

         格式:unsigned int strlen(char * str);

           来统计字符串中字符的个数。

      2、字符串拷贝函数

        (1)、strcpy();   格式: char * strcpy(char * dest,char * src);

                    该函数是把src指向的字符串拷贝到dest中去,并且返回指向dest的指针给调用函数。

        (2)、strncpy();  格式: char * strncpy(char * dest,char * src,int n);

                    该函数是把src所指向的字符串的前n个字节复制到dest所指向的数组中,并且返回指向dest的指针。

      3、字符串连接函数

        (1)、strcat();   格式:char * strcat(char * dest,char * src);

                    该函数是把src所指字符串添加到dest结尾处(覆盖dest结尾处的""),在整个字符串,即新的dest最后添加"",并                            且返回指向dest的指针给调用函数。

        (2)、strncat();   格式:char * strncat(char * dest,char * src,int n);

                    该函数是把src所指字符串的前个字节添加到dest结尾处(覆盖dest结尾处的""),在整个字符串,即新的dest最后添                          加"",并且返回指向dest的指针给调用函数。

      4、字符串比较函数

        (1)、strcmp();   格式:int strcmp(char * s1,char * s2);

                      该函数是比较字符串s1和s2,即对两个字符串自左向右逐个比较(按ASCII码值大小比较),

                            直到出现不同的字符或者遇到""为止。其返回值有三种,如下图:

           

        (2)、strncmp();   格式:int strcmp(char * s1,char * s2,int n);

                         该函数是比较字符串s1和s2的前n个字符,其返回值跟上面一样也是3种。但要注意,

                               该函数在比较时,从左向右逐个字符相比,直到n个字符结束。

        (3)、strcmpi();   格式:int strcmpi(char * s1,char * s2);

                         该函数是比较字符串s1和s2,但不区分大小写。

      5、字符串查找函数

        (1)、strchr();   格式:char * strchr(char * s,char c);

                       s指向待查找的字符串,c可以赋值为需要查找的字符。当调用该函数时,将字符串中从左到右,

                      第一个出现的字符c的地址返回给调用函数,如果没有找到,返回NULL。

        (2)、strrchr();   格式:char * strrchr(char * s,char c);

                      与上面相反,这是从右到左查找。

        (3)、strcspn();   格式:int strcspn(char * s1,char *s2);

                        该函数是在字符串s1中搜寻s2中所出现的字符,返回第一个出现的字符在s1中的下标。

        (4)、strspn();    格式:int strspn(char * s1,char *s2);

                        该函数返回值为n,则说明s1开始连续有n个字符都是与字符串s2内的相同。

        (5)、strpbrk();    格式:char * strpbrk(char * s1,char *s2);

                      该函数是在字符串s1中搜寻与字符串s2中任何一个字符相匹配的第一个字符的位置,结束符不包括在内,

                     并返回指向s1中的第一个相匹配的字符的指针,如果没有匹配的就返回NULL。

        (6)、strstr();     格式:char * strstr(char * s1,char *s2);

                      该函数是在一个字符串中查找子字符串,并返回指向这个子字符串的指针。与其他查找函数不同,该函数是要整个,

                     子字符串相符合时,才成功返回。

      6、其他字符串处理函数

        (1)、strrev();     格式:char * strrev(char * s);

                        该函数是将一个字符串中的字符顺序颠倒(但不包括空字符NULL),并返回指向新字符的指针。

        (2)、strset(); 和strnset();    格式: char * strset(char * s,char c);

                           char * strnset(char * s,char c,int n);

                          更换字符串中的字符(带n更换前n个,不带全换)。

      7、字符串检查函数

        (1)、isdigit();      格式:int isdigit(char c);

                        当c为0-9时,返回非零,否则返回0。

        (2)、isalpha();      格式:int isaalpha(char c);

                          当c为a-z或者A-Z时,返回非零,否则返回0。

      8、将字符串转换成数字

        int atoi(char * s);

        long atoi(char * s);

            这两个函数都可以讲指定的数字字符串转换成数值,并赋值给变量。不过,这两个函数也是有区别的,

              一个是转换成int型,一个是long型。

     

    八、指针

     

    指针函数

      例:int * fun(int * a,int * b)

        {

          ...

          return p;

        }

    函数指针

      作用:(1)、调用函数   (2)、作参数

        例:int fun(int x);   //声明一个函数

          int (*f) (int x);  //声明一个函数指针

          f=fun;         //将fun的首地址赋值给f

     

    九、结构体

     

    结构体就相当于是一个数据类型

        例:struct (student)

          {

            

          }(sd1,sd2);

       (struct student sd1,sd2);

    -----------------------------------------------------------------

         struct (student)

         {

          

         }sd1={ , , , ,};

         sd1. = ;...

    共用体   用法同上

      union data

      {

      };

     

    十、文件 待续

     

  • 相关阅读:
    Softmax
    网络流模板大全
    简单数据结构题(from 钟子谦——IOI2018集训队自选题)
    [POJ3177]Redundant Paths
    [BZOJ1051][HAOI2006]受欢迎的牛
    [BZOJ2036]聪明的阿卑多
    [BZOJ1455]罗马游戏
    [POJ2942][LA3523]Knights of the Round Table
    [POJ3352]Road Construction
    练级(train)
  • 原文地址:https://www.cnblogs.com/xujingyang/p/4665555.html
Copyright © 2020-2023  润新知