1.字符数组
(1)输入输出 %s
2)字符数组初始化 字符串
char ch[]=“hello”
2.字符串处理函数
1)函数原型
函数返回值 函数名(形参1类型 形参1,形参2类型 形参2…)
说明:实参必须有确定的值,并且个数与形参保持一致,类型和形参一致或赋值兼容 int a=3.6 ,double x=3;
1.字符串输入、输出函数

int gets(char* str)===从键盘输入一个字符串,保存到str所指向的内存单元中
 int puts(char* str)输出str所指向的地址中的字符串,并且换行
 char ch[20];
 gets(ch)<>gets(&ch[0])
 gets(ch[1])错误,实参类型为char,而且函数gets要求的形参类型为char*
 gets(&ch[1]);正确,输出从ch【1】开始的字符串(到\0之前的字符串)
 puts(“hello”);
 2字符串连接函数
 char* strcat(char* str1,char* str2)
 将str2所指向的字符串,连接到str1所指向的字符串后面,并且去掉str1后面的\0,返回的是str1(地址)
注意 str1所指向的内存单元足够大(放下连接后的字符串)
 char ch1[]=“hello”;
 char ch2[]=“world”;
 stract(chi,ch2);错误 ,ch1不足够大
 char ch1[20]=“hello”;
 char ch2[]=“world”;
 stract(ch1,ch2);正确
 puts(ch1);输出 helloworld
 puts(strcat(ch1,ch2));将strcat(ch1,ch2)调用的结果(函数的返回值)作为puts的实参,调用正确,输出helloworld
 stract(ch1,&ch2[3]);
 puts(ch1);输出hellold;
 puts(stract(ch1,&ch2[3]));输出hellold;
 stract(&ch1[2],ch2);
 puts(ch1);输出hello;
 puts(stract(&ch1[2],ch2));输出lloworld;
 3.字符串复制函数
 1)函数原型
 char strcpy(char str1,char* str2)
 将str2所指向的字符串,复制到str1所指向的内存单元中,返回的str1(地址)
注意 str1所指向的内存单元要大于等于str2所指向的内存单元
 char ch1[20]=“hello”;
 char ch2[]=“wor”;
 strcpy(str1,str2);
 puts(ch1);输出wor
 strcpy(“hello”,“world”);错误,第一个参数的内存空间不够大
 puts(strcpy(str1,str2));输出wor
 puts(strcpy(&str1【1】,str2【1】));输出or 等价于strcpy(&str1【1】,str2【1】);puts(&ch1[1]);
 2)函数原型
 strncpy(char str1,char str2,int n);
 把syr2指向的字符串的 n个字符(不一定包含\0)复制到str1指向的内存单元中,返回str1(地址)
 char ch1[20]=“hello”;
 char ch2[]=“world”;
 strncpy(ch1,ch2,3);
 puts(ch1);//输出worlo;


4.字符串比较函数
函数原型
int strcmp(char* str1,char* str2)
比较两个字符串的大小(逐个字符比较ASC||值的大小),如果str1=str2返回0,
如果str1>str2返回1,如果str1<str2返回-1,
5.字符串有效长度函数
函数原型

unsigned int strlen(char* str)
 统计str字符字符串中字符的个数,不包括\0,返回字符个数
 char ch1[20]=“hello”;
 char ch2[]=“world”;
 int a,b,c;
 a=strlen(ch1);5
 b=strlen(ch2);5
 c=strlen(“world”);5
 6.字符串转换成小写
 strlwr(char* str)
 char ch1[]=“Hello”
 strlwr(ch1)//hello
 7.字符串转换成大写
 strupr(char* str)
 char ch1[]=“Hello”


strupr(ch1)//HELLO
第七章 函数(实现了一定功能的代码模块)-模块化,代码复用
1.函数的定义
语法
函数返回值类型 函数名 (形参1类型 形参1,形参2类型 形参2…)//函数的首部
{//函数体,函数功能的实现
}
说明:函数的返回值类型,即函数类型,是函数完成功能后的返回值的类型,如果没有,明确定义为void,如果有返回值,则在函数体中要使用return语句带回返回值
函数名为任意合法的标识符
形参:函数完成功能时,所必须的已知条件,如果没有则括号什么也不写,称为无参函数(例如求1—100的和就是无参函数)
函数体:用大括号括起来的内容,是函数功能的完整实现
例如,写一个函数,求两个整数的和

int add(int x,int y)
 {int z=x+y;
 return z;
 }
 int f=add(2,3);
 int add()
 {int x,y,z;
 scanf("%d%d",&x,&y);
 z-x+y;return z;
 }
 int f=add();


2.函数的调用
函数的声明(函数原型声明)