欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习日志

程序员文章站 2022-06-29 18:53:46
...

学习日志1
姓名:王绘雯 日期:2018.9.10
今日学习任务:安装学习环境,熟悉Linux的基本命令,复习相关C语言知识(指针、数组、结构体等)
今日任务完成情况:基本能跟上老师的思路,跟着老师完成了相关程序的编写,程序编译没有问题,结果正确。
今日开发中出现的问题汇总:
程序编写速度慢,对一些C语言的概念比较混淆。
今日开发收获:
对学习环境有了基本的了解,一些模糊的知识也重新整理明白了。
自我评价:
能勉强跟上老师的编写速度和思路,还有待加强。
其他:
无。
今日作业:
1.输入一个字符串,计算字符串中子串出现的次数。

#include<stdio.h>
#include<string.h>

int fun(char *a, char *b)
{
    int len_b;
    int count = 0;
    int num = 0;
    char *temp = b;

    len_b = strlen(b);

    while (*a != '\0')
    {
        if (*a == *temp)
        {
            while ((*a == *temp) && (*a != '\0') && (*temp != '\0'))
            {
                num++;
                a++;
                temp++;
            }
            if (num == len_b)
            {
                count++;
                }
            num = 0;
            temp = b;
        }
        else
        {
            a++;
        }
    }

    return count;
}

int main()
{
    char a[100];
    char b[10];
    int num;

    printf("Enter the main string(<=100)!\n");
    scanf("%s",a);
    printf("Enter the substring(<=10)!\n");
    scanf("%s",b);
    num = fun(a,b);
    printf("The number is:%d\n",num);

    return 0
}

2.编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
    char *str[4];
    char *ptr = "I am from shanghai";
    int i, j;

    for (i = 0; i<4; i++)
    {   
        str[i] = (char *)malloc(sizeof(char) * 20);
    }   

    for(i = 0; i < 4; i++)
    {   
        ptr ++; 
        for (j = 0; j<20; j++)
        {
            if(*(ptr - 1) == ' ' || *(ptr - 1) == '\0')
            {
                break;
            }
            strncat(str[i],ptr - 1, 1); 
            ptr++;
        }
    } 
     for(i = 3; i >= 0; i--)
    {   
        printf("%s ",str[i]);
    }   
    printf("\n");
    return 0;
}