一、字符串的常见操作
1.strlen:
获得字符串的长度
char str[32] = {0};
int len = 0;
gets(str);
len = strlen(str);
2.strcpy
字符串的拷贝
注意:
1.目的空间一定要足够大存放的下源字符串
3.strcat
字符串的拼接,在第一个字符串末尾拼接上第二个字符串
注意:
1.第一个字符串要空间足够大
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[32] = {0};
char str2[32] = {0};
gets(str1);
gets(str2);
strcat(str1, " ");
strcat(str1, str2);
printf("str1 = %s\n", str1);
printf("str2 = %s\n", str2);
return 0;
}
4.strcmp
字符串的比较
如果两个字符串相同,结果为0
如果第一个字符串 > 第二个字符串,结果为 > 0 的值
如果第一个字符串 < 第二个字符串,结果为 < 0 的值
两个字符串比较,从左到右每个字符进行比较,不相同的字符,谁的ASCII码值大,字符串就大
char str1[32] = {a};
char str2[32] = {b,c};
int ret = 0;
ret = strcmp(str1, str2);
printf("ret = %d\n", ret);
a的ASCII值为97,b = 98, c = 99,strcmp的比较只会比较两串字符第一个不相同的字符,如果输出str1[32]={hello};str2[32]={helo};前面hel都相同,则不会比较,只比较l和o的ASCII值,再用str1减去str2,完全相同则为0.
二、二维数组
1.定义:
数据类型 数组名[行数][列数];
char str[5][32];
2.存储:
1.连续性
2.有序性
3.初始化
1.局部初始化:
char str[5][32] = {
{'h', 'e', 'l', 'l', 'o', '\0'},
{'w', 'o', 'r', 'l', 'd', '\0'},
{'h', 'o', 'w', '\0'},
{'a', 'r', 'e', '\0'},
{'y', 'o', 'u', '\0'},
};
char str[5][32] = {
{"hello"},
{"world"},
{"how"},
{"are"},
{"you"}
};
char str[5][32] = {"hello", "world", "how", "are", "you"};
char str[5][32] = {0};
三、函数
特性:
1.避免重复性代码
2.程序代码模块化
1.函数的定义:
函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, ...)
{
函数体;
return 返回值;
}
函数类型:函数运行结果的类型
int float double char void
1.函数类型如果不写,默认为int类型
2.函数返回值缺省,应该写void类型
3.函数类型应该与返回值的类型一致,如果不一致以函数类型为准
函数名:
1.由字母、数字和下划线构成,不能以数字开头
2.不要与C语言关键字重名
3.最好不要与C语言库函数重名
4.最好见名知意(动宾形式)
GetMaxNum
GetMinNum
GetAvgScore
DownLoadFile
#include<stdio.h> 函数的定义
int Add(int x,int y) //Add为定义的函数名
{
int num = 0;
num = x * y;
return num; //return 后面跟返回值
}
int main(void)
{
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
int a = 0;
int b = 0;
Add(a,b); //函数的调用
return 0;
}
2.函数的调用:
函数名(实际参数1, 实际参数2, ...);
注意:
1.实参个数必须与形参个数一一对应
2.实参可以是常量、变量、或者表达式
3.函数调用时会发生实参向形参空间的拷贝,实参将值拷贝给形参(一一对应),实参类型与形参类型不一致时,将实参类型默认转换为形参类型
3.函数的声明:
定义: 定义需要为变量开辟空间
声明: 该变量是存在的,不需要开辟空间
如果被调函数的定义在主调函数的下方,需要对被调函数声明一下
#include<stdio.h>
int Add(int x,int y); //函数的声明
int main(void)
{
int a,b;
Add(a,b); //函数的定义在使用之后,则使用函数需要在开头声明
return 0;
}
int Add(int x,int y)
{
return x+y;
}