作业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语言。