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结尾处的"\0"),在整个字符串,即新的dest最后添加"\0",并                            且返回指向dest的指针给调用函数。

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

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

  4、字符串比较函数

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

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

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

       

    (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

  {

  };

十、文件 待续

时间: 2024-10-07 20:55:08

C语言基础知识小总结(2)的相关文章

java基础知识小小结

java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程序的文件名就可以随意命名了. 文档注释,是以单斜线加两个星形标记( /**)开头,并以一个星形标记加单斜线( */)结束.用这种方法注释的内容会被解释成程序的正式文档,并能包含进如 javadoc之类的工具生成的文档里,用以说明该程序的层次结构及其方法. Java 把整数常量的数据类型均视为 int

C语言基础知识之综合案例(1)

1,在屏幕上显示信息. 最常见的显示信息的方式是使用库函数printf()和puts(). a,转义字符. b,转移说明符. printf()函数位于标准C语言库中,它是最通用的在屏幕上显示信息的方式. #include<stdio.h> void main() { //在屏幕上显示文本信息 very nice ! printf("very nice !"); //显示变量的值 int number = 10; /* 格式化字符串 格式化字符串指定如火如荼格式输出,由以下三

编程入门:C语言基础知识全网超全不用到处找了!(文末附清单)

你背或者不背,干货就在那里,不悲不喜 你学或者不学,编程就在那里,不来不去 听到这话的你是否略感扎心? 编程入门:C语言基础知识全网超全不用到处找了!(文末附清单)01基础知识 计算机系统的主要技术指标与系统配置. 计算机系统.硬件.软件及其相互关系. 微机硬件系统的基本组成. 包括:中央处理器(运算器与控制器),内存储器(RAM与ROM),外存储器(硬盘.软盘与光盘),输入设备(键盘与鼠标)输出设备(显示器与打印机).如果大家如果在自学遇到困难,想找一个C++的学习环境,可以加入我们的C++学

OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程 二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行类的

C#语言基础知识(2):C#中多态

我的理解是:通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态. 1: OverRide 实现多态 1 public class Animal 2 { 3 public virtual void Eat() 4 { 5 Console.WriteLine("Animal eat"); 6 } 7 } 8 public class Dog : Animal 9 { 10 public override void Eat() 11 { 12 Console.WriteLin

李洪强iOS开发之OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程   二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行

C#语言基础知识(1):C#中关于重载和重写

Overload:重载就是在同一个类中,方法名相同,参数列表不同.参数列表不同包括:参数的个数不同,参数类型不同. 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 5 namespace OverLoading 6 { 7 class Program 8 { 9 public static int max(int i, int j) //静态方法 10 { 11 if (i > j) 12 re

C#语言基础知识(3):C#中转义符

C#转义字符: 一种特殊的字符常量:以反斜线"\"开头,后跟一个或几个字符.具有特定的含义,不同于字符原有的意义,故称“转义”字符.主要用来表示那些用一般字符不便于表示的控制代码. 它的作用是消除紧随其后的字符的原有含义用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义” 用可以看见的字符表示那不可以看见的字符, 如'\n'表示换行 常用的转义字符及其含义: \’ 单引号\” 双引号\\ 反斜杠\0 空\a 警告(产生峰鸣)\b 退格\f 换页\

C#语言基础知识(4):C#中的String.Format方法

定义String.Format是将指定的String类型的数据中的每个格式项替换为相应对象的值的文本等效项.(1)string p1="xiaomeng";string p2="xiaobei";Response.Write(String.Format("Hello {0},I'm {1}",p1,p1));(2)Response.Write(String.Format("Hello {0},I'm {1}","xi