一、知识点总结:
1、字符串的输入:
(1)
scanf("%s",str);
/*输入参数:字符数组名,不加地址符。
遇到回车或空格输入结束,并自动将输入的一串字符和'\0'送入数组中*/
//例:
#include<Stdio.h>
int main()
{
char str[80];
scanf("%s",str);
printf("%s",str);
return 0;
}
(2)
gets(str)
/*遇到回车输入结束,自动将输入的一串字符和'\0'送入数组中*/
//例:
#include<stdio.h>
int main()
{
char str[80];
gets(str);
puts(str);
return 0;
}
2、字符串的复制、连接...:
(1)字符串的复制:strcpy(str1,str2)
(2)字符串的连接:strcat(str1,str2)
(3)字符串的比较:strcmp(str1,str2)
(4)求字符串长度:strlen(str)
※开头加#include<string.h>
3、字符串处理函数小结:
函数 | 功能 | 头文件 |
puts(str) | 输出字符串 | stdio.h |
gets(str) | 输入字符串(回车间隔) | |
strcpy(s1,s2) | s2→ s1 | string.h |
strcat(s1,s2) | s1"+"s2→ s1 | |
strcmp(s1,s2) |
若s1"=="s2,函数值=0 若s1">"s2,函数值>0 若s1"<"s2,函数值<0 |
|
strlen(str) |
计算字符串有效长度,不 包括'\0' |
4、结构:
(1)结构类型:结构类型是把一些数据分量聚合成一个整体的数据类型。其中每个数据分量都有名字。
(2)定义一般形式为:
struct 结构名 {
类型名 结构成员名1;
类型名 结构成员名2;
类型名 结构成员名3;
...
类型名 结构成员名n;
}
※关键字struct和它后面的结构名一起组成一个新的数据类型名。结构的定义以分号结束,这是因为C语言中把结构的定义看做一条语句。
5、结构的嵌套定义:
学号 | 姓名 | 通信地址 | 计算机 | 英语 | 数学 | 平均成绩 | |||
城市 | 街道 | 门牌号 | 邮编 |
struct address{
char city[10];
char street[20];/*定义地址结构*/
int code;
int zip;
};
struct nest_student{
int num;
char name[10];
struct address addr;/*定义通信地址成员*/
int Computer,English,Math;
double average;
};
/*※在定义嵌套的结构类型时,必须先定义成员的结构类型,再定义主结构类型*/
6、结构变量的定义和初始化:
(1)单独定义:
单独定义是指先定义一个结构类型,再定义这种结构类型的变量。(关键字struct和结构名必须联合使用,表示一个数据类型名)。
(2)混合定义:
混合定义是指在定义结构类型的同时定义结构变量。
一般形式为:
struct 结构名{
类型名 结构成员名1;
类型名 结构成员名2;
类型名 结构成员名3;
...
类型名 结构成员名n;
}结构变量名表;
(3)无类型名定义:
无类型名定义是指在定义结构变量时省略结构名。
一般形式为:
struct {
类型名 结构成员名1;
类型名 结构成员名2;
类型名 结构成员名3;
...
类型名 结构成员名n;
}结构变量名表;
※由于省略了结构名,在此定义语句后面无法在定义这个类型的其他结构变量(除非把定义过程再写一遍)
结构变量也可以初始化,即在定义是对其赋初值。例如:
struct student s1={101,"zhang",78,87,85};
二、实验过程中遇到的问题及解决方法:
在此次实验中没有遇到什么问题,学习了结构语句,还要多加练习。
三、实验心得:
第一学期接近末尾,这也是最后一次作业,学习了一个学期的c语言感觉还是要靠自己不断地修改代码慢慢尝试才能真正的弄懂思想,在平时还要多加练习,熟练各种思想,继续加油!