C语言基础

数据类型:整数类型int 字符型类型char 浮点数类型float
输入输出函数pringf(输出到终端) scanf(运行停顿,从键盘读入)

if循环

if 循环方式3种
ifif(判断)    语句1

if(判断)    
语句1
else
语句2

if(判断)
语句1
else if(判断)
语句2
else if(判断)
语句3
else
语句4

switch遍历:

switch(变量)
{
case 常量B:语句1;
case 常量A:语句2;
case 常量C:语句3;
default:语句4;    //如果都不符合条件执行此行
}


for语法结构:

for(循环初始值;循环条件;循环变量增值)
执行语句;
for(i=1;i<100;i++)
printf(i);


while语法结构:

while(条件)
{
执行语句;

}

//2
do
{
执行语句
}
while(条件);

关于循环嵌套,循环嵌套包含for while if等此处以for举例,替换为其他同理

for(j=0;j<3;i++)                //外循环
{
    printf("外循环")            //外循环执行语句
    for(i=0;i<3;i++)            //内循环
        {    
            printf("内循环")            //内循环执行语句
        }
    printf("
")                    //此处打印空行 在执行结果中便于分清每次外循环
}
上述代码执行结果:
外循环
内循环
内循环
内循环 

外循环
内循环
内循环
内循环 

外循环
内循环
内循环
内循环 

即每次外循环执行了三次内循环(内循环条件限制为3,),共执行了三次外循环(外循环条件限制为3次)

continue和break区别:前者只中断本次外循环,而执行下一次外循环;后者中断整个循环

1.break 语句可用于跳出循环。
2.break所在的循环体已经结束
1.continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。
2.continue所在的循环体并没有结束


代码演示:

for (i=0;i<5;i++)
{
    if (i==3) break;
    x=x + "The number is " + i + "<br>";
}
//  只输出 0 , 1 , 2 , 到3就跳出循环了
---
for (i=0;i<=5;i++)
{
    if (i==3) continue;
    x=x + "The number is " + i + "<br>";
}
//  不输出3,因为continue跳过了,直接进入下一个迭代


数组是基于基本数据类型的一种数据类型:
定义类型说明符 数组名[数字]; 如int array[4];
基于此可衍生二维数组 int array[3][4];为3*4的矩阵,一般在循环中用array[i][j]代替数字进行迭代;

在数组学习中,涉及一些字符串(char)的常用函数
puts gets strcat strcpy strncpy strcmp strlen strlwr strupr

 代码演示

#include<stdio.h>
int main()
{
    char str1[]={"china"};  
    char str2[]={"beijing"};    
    char str3[10];
    puts(str1);                 //puts同printf gets(str)从键盘得到数组
    printf("%s
",strcat(str1,str2));       //strcat拼接两者
    strcpy(str3,str2);          //strcpy讲后者复制到前者去,后者可以是字符串
    printf(str3);
    // strncpy(str3,str2,2);       //将后者前n位复制到前者
    strcmp(str1,str2);              //strcmp(字符串1,字符串2),比较大小,前者大返回正整数
    printf("%d",strlen(str1));      //返回字符串长度,不包括后面的
    //strlwr转换为小写字母,strupr转换为大写字母
    
}
字符串内置函数

函数使用

/*
定义无参数函数:
类型名 函数名()
{
    函数体
}
定义有参数函数
类型名 函数名(形式参数)
{
    函数体
}
定义空函数
类型名 函数名()
{}
调用函数
函数名字(实参列表)
*/
//多维数组做函数参数
#include<stdio.h>
int main()
{
    int max_value(int array[][4]);
    int a[3][4] = {{1,3,5,7},{2,4,6,8},{15,17,34,12}};
    printf("max value is %d
",max_value(a));
    return 0;

}
int max_value(int array[][4])
{
    int i,j,max;
    max = array[0][0];
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            if(array[i][j]>max) max = array[i][j];
    return(max);
}
自定义函数使用
读写文件
fputc() 把参数 c 的字符值写入到 fp 所指向的输出流中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回 EOF。
fputs() 把字符串 s 写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF。
fgetc() 函数从 fp 所指向的输入文件中读取一个字符。返回值是读取的字符
fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区 buf,并在最后追加一个 null 字符来终止字符串。
如果这个函数在读取最后一个字符之前就遇到一个换行符 ' ' 或文件的末尾 EOF,则只会返回读取到的字符
fscanf(FILE *fp, const char *format, ...) 函数来从文件中读取字符串,但是在遇到第一个空格字符时,它会停止读取。
#include <stdio.h>
int main()
{
   FILE *fp = NULL;
 
   fp = fopen("test.txt", "w+");
   fprintf(fp, "This is testing for fprintf...
");
   fputs("This is testing for fputs...
", fp);
   fclose(fp);
}
写入文件
#include <stdio.h>
 
int main()
{
   FILE *fp = NULL;
   char buff[255];
 
   fp = fopen("/tmp/test.txt", "r");
   fscanf(fp, "%s", buff);
   printf("1: %s
", buff );
 
   fgets(buff, 255, (FILE*)fp);
   printf("2: %s
", buff );
   
   fgets(buff, 255, (FILE*)fp);
   printf("3: %s
", buff );
   fclose(fp);
 
}
读出文件
原文地址:https://www.cnblogs.com/louzhiyuan/p/10992935.html