#include<stdio.h>#include<string.h>intmain(){/*方式一*/char str[]="I Love China!";printf("%d\n",strlen(str));//14printf("%s\n",str);//I Love China!/*方式二*/constchar*str1="I Love China!";printf("%d\n",strlen(str1));//14printf("%s\n", str1);//I Love China!return0;}
函数指针
什么是函数指针?
指向函数的指针变量
函数的两种调用方式
函数名调用
函数指针调用
函数在编译时被分配一个入口地址
函数名代表函数的入口地址
故而只需函数指针指向函数名即可
重在理解函数调用的原理
#include<stdio.h>intsum(int a,int b){return a + b;}intmain(){intsum(int,int);int(*p)(int,int);
p = sum;printf("1 + 1 is %d\n",sum(1,1));printf("1 + 1 is %d\n",(*p)(1,1));return0;}
字符串
蓝桥杯常用输入输出
单字符输入输出
getchar()和putchar()
字符串输入
如果字符串间无空格,则使用scanf搭配%s
如果字符串间有空格,则使用gets()
gets()遇到换行就结束
如果需要继续输入,则可以gets()搭配`getchar()
gets()的替代品fgets()
gets()不安全,fgets()可以限制读入字符数
char a[LEN];fgets(a,LEN,stdin);
stdin表示是从控制台输入
fgets也是遇到换行就结束,不过相比于gets(),fgets会保留换行
蓝桥杯常用字符串函数
strlen()
统计字符串长度
建议不要用在for循环条件中,会影响效率,一般在循环前计算出结果
strcmp()
字符串比较
返回值为整数
strcpy()
字符串赋值
strcat()
字符串拼接
sprintf()
将数据写入字符串
sprintf(word,"%s:%d,%c\n",a,b,c);
文件
File *fp;//打开文件,文本文件r,w|二进制文件rb,wb
fp=fopen("1.txt","r");/*1 从fp指定文件获取一个字符,getc()*/while((ch=getc(fp))!=EOF){putchar(ch);}/*2 从fp指定文件获取字符串,fgets()*/char buf[LEN];fgets(buf,LEN,fp);/*3 将数据写到输出控制台*/fprintf(stdout,"Can't open this file!");//关闭文件fclose(fp);