不使用strcpy将通过输入得到的数组str 拷贝到数组dst
#include<stdio.h>
#include<string.h>
int main(void)
{
char str[32] = {0};
char dst[32] = {0};
int i = 0;
gets(str);
while (str[i] != '\0')
{
dst[i] = str[i];
i++;
}
dst[i] = '\0';
puts(str);
puts(dst);
return 0;
}
不使用strcat 将字符串数组dst 添加到数组str
int main()
{
int i = 0;
char str[32] = {0};
char dst[32] = {0};
int len = 0, len2 = 0;
gets(str);
gets(dst);
len = strlen(str);
len2 = strlen(dst);
/* for (i = 0; i < len2; i++)
{
if (dst[i] != '\0')
{
str[i+len] = dst[i];
}
} */
while (dst[i] != '\0')
{
str[i+len] = dst[i];
i++;
}
str[i+len] = '\0';
puts(str);
puts(dst);
return 0;
}
不使用strlen实现strlen的功能
#include<stdio.h>
int main()
{
char str[32] = 0;
int i = 0, cnt = 0;
gets(str);
while (str[i] != '\0')
{
i++;
cnt++;
}
printf("%d\n",cnt);
return 0;
}
不使用strcmp实现strcmp的功能
include<stdio.h>
int main()
{
int i = 0, a = 0;
char str1[32] = {0};
char str2[32] = {0};
gets(str1);
gets(str2);
for (i = 0;; i++)
{
if (str1[i] == str2[i]){}
else {a = str1[i]- str2[i];break;}
}
printf("a= %d\n",a);
return 0;
}
封装三个函数: 函数1,传入年份,获得该年是闰年还是平年,闰年返回1 平年返回0 int IsLeep(int Year); 函数2,传入年-月-日信息 打印出这一天是该年的第几天 int GetDay(int Year, int Mon, int Day); 函数3,传入年-月-日信息,打印该年剩余多少天 int GetLeft(int Year, int Mon, int Day);
#include<stdio.h>
int leep(int x)
{
int c = 0;
if (x % 4 == 0)
{
if(x % 400 ==0)
{c = 1;}
else if (x % 100 == 0)
{
c = 0;
}
else c = 1;
}
else c = 0;
return c;
}
int getday(int year, int mon, int day)
{
int d = 0;
int i = 0;
d =leep(year);
for(i= mon - 1; i > 0; i--)
{
if (i == 10|| i ==8 || i == 7 || i == 5|| i ==3 || i == 1)
{
day += 31;
}
else if (i==11|| i==9|| i==6|| i==4) {day+=30;}
else {if (d == 0) day +=28;
else if (d == 1) day +=29;}
}
return day;
}
int getleft(int year,int mon,int day)
{
int k = 0;
int c = leep(year);
int j = getday(year,mon,day);
if (c==0) k = 365 - j;
else k =366 - j;
return k;
}
int main()
{
int year = 0;
int mon = 0;
int day = 0;
int b = 0;
scanf("%d",&year);
scanf("%d%d",&mon,&day);
leep(year);
getday(year, mon, day);
getleft(year,mon,day);
printf("year is leep ? %d\n",leep(year));
printf("getday is %d\n", getday(year,mon,day));
printf("getleft is %d\n", getleft(year,mon,day));
return 0;
}
1.字符串常见操作:
1.strlen:
获得字符串的长度
2.strcpy
字符串的拷贝
注意:目的空间一定要足够大存放的下源字符串
3.strcat
字符串的拼接,在第一个字符串末尾拼接上第二个字符串
注意:第一个字符串要空间足够大
4.strcmp
字符串的比较
2.二维字符型数组:
1.定义:
数据类型 数组名[行数][列数];
char str[5][32];
2.存储:
1.连续性
2.有序性
3.初始化
1.局部初始化:
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.最好见名知意(动宾形式)
2.函数的调用:
函数名(实际参数1, 实际参数2, ...);
注意:
1.实参个数必须与形参个数一一对应
2.实参可以是常量、变量、或者表达式
3.函数调用时会发生实参向形参空间的拷贝,实参将值拷贝给形参(一一对应),实参类型与形参类型不一致时,将实参类型默认转换为形参类型
3.函数的声明:
定义: 定义需要为变量开辟空间
声明: 该变量是存在的,不需要开辟空间
如果被调函数的定义在主调函数的下方,需要对被调函数声明一下