作业1:找出最长的字符串
#include <stdio.h> #include <string.h> int main() { char string[5],strings[5][100]; int i,n,max,temp=0; printf("输入五个字符串:\n"); scanf("%s",strings[0]); string[0]=strings[0][100]; max=strlen(strings[0]); for(i=1;i<5;i++) { scanf("%s",strings[i]); string[i]=strings[i][100]; n=strlen(strings[i]); if(max<n) { max=n; temp=i; } } printf("输出最长字符串:%s\n",strings[temp]); return 0; }
测试:
作业2:分类统计字符个数
#include <stdio.h> int main() { char s[100]; int i=0,dx=0,xx=0,kg=0,sz=0,others=0; printf("请输入一行文字:\n"); gets(s); for(i=0;s[i];i++) { if(s[i]>='A'&&s[i]<='Z') dx++; else if(s[i]>='a'&&s[i]<='z') xx++; else if(s[i]==' ') kg++; else if(s[i]>='0'&&s[i]<='9') sz++; else others++; } printf("dx=%d\n xx=%d\n kg=%d\n sz=%d\n other=%d\n",dx,xx,kg,sz,others); }
测试:
知识点总结:
1.字符串常量:“array” “point”
2.用一对双引号括起来的字符序列,被看做一个特殊的一维字符数组,在内存中连续存放,实质上是一个指向该字符串首字符的指针常量
例如:char sa[ ]="array" char *sp="point"
3.数组名sa、指针sp和字符串"string"的值都是地址
4.字符数组与字符指针的重要区别:
①如果要改变数组sa所代表的字符串,只能改变数组元素的内容;
②如果要改变指针sp所代表的字符串,通常直接改变指针的值,让它指向心得字符串;
5.输入字符串:scanf( )或gets( );scanf("%s",str)字符数组名不加地址符,遇回车或空格输入借书,并自动将输入的一串字符和'\0'送入数组中
6.输出字符串:printf( )或puts( );printf("%s",str)
7.字符串的复制:strcpy(str1,str2);字符串的链接:strcat(str1,str2);字符串的比较:strcmp(str1,str2);求字符串长度:strlen(str)
问题:定义字符指针后,如果对他没有赋值,指针的值是不确定的,所以不要引用未赋值的指针
计算字符串的有效长度,不包括'\0'
作业三搞不明白什么叫输出输入学生信息,如果按姓名查找学生信息,我会写很久吧
心得:
最后一次作业不多,用到了之前学的比如像&&一些东西,下次课开始复习了,给自己这一个学习的学习C语言生活画上一个圆满的句号。不知道以后学数字媒体要不要学习这么繁琐的C语言。