学习内容:
1、预处理:#include "stdio.h"在当前目录和环境指定的目录中找到该文件。
#include <stdio.h>在由环境指定的文件目录中找到该文件
2、宏
#define 可以定义函数
例如:#define OUT printf("helloworld\n") 无参宏函数
#define P(s) printf("%s\n",s) 有参宏函数
自定义函数和宏函数的区别:
(1)宏函数不占空间。优点:节省空间 。 缺点:浪费时间,编译时间长。没有语法检查,不安全
(2)自定义函数(普通函数) 优点:有语法检查。 缺点:浪费空间
***宏函数只做简单的替换***
例如:#define SQR(x) x*x
a=1,b=2 printf("%d",SQR(a+b));
b表达式变为:a+b*a+b 要注意优先级
3、关于指针的练习
void str_res(char *str)
{
int i,j,len_str;
char *ptr;
len_str=strlen(str);
for(i = 0;i < len_str;i++)
{
if(strncmp(str ,"head", 4)==0)
{
break;
}
str++;
}
ptr=str;
for(j=0;j<len_str-i;j++)
{
if(strncmp(ptr,"tail",4)==0) {
ptr=ptr+4;
*ptr=0;
break;
}
ptr++;
}
if(i >= len_str || j >= len_str - i)
{
printf("ERROR!");
}
printf("the licit string is : %s\n",str);
}
int main()
{
char str1[100];
printf("Please input a string:");
scanf("%s",str1);
str_res(str1);
return 0;
}
输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来。
理解:这题就是字符串的匹配,匹配head成功后输出放入另一个数组中,第二个数组再和tail 匹配,成功后输出,就可以的到合法的帧了。
今日100题错误:1、缺少头文件
2、i写成1
3、{}的位置