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

苏嵌日志

程序员文章站 2022-03-04 21:40:22
...

学习日志:
王悦
18.9.10
今日任务完成情况: 跟着老师把课上的程序都跟着编译了一遍。
今日开发中出现的问题: 刚开始虚拟机的操作不是很顺畅,多操作了几次基本能完成简单的C编写。
今日未解决的问题: 指针不是很懂。
今日开发收获: 学习到怎么在虚拟机上运行C。
自我评价: 进度还可以,课上基本跟上。

3.输入一个字符串,计算字符串中子串出现的次数
#include <stdio.h>
#include <string.h>
void main()
{
    char str1[20], str2[20], *p1, *p2;
    int sum=0;
    printf("Please enter two strings\n");
    scanf("%s%s", str1, str2);
    p1=str1;
    p2=str2;
    while(*p1 != '\0')
    {
        if(*p1 == *p2)
        {
            while(*p1 == *p2 && *p2 != '\0')
            {
                p1++;
                p2++;
            }
        }
        else
            p1++;
        if(*p2 == '\0')
            sum++;
        p2=str2;
    }
    printf("%d", sum);
    getchar();
}

4.编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构.
#include <stdio.h>
#include <string.h>
int main()
{
    char str[]="I am from shanghai";
    puts (str);
    char tmp;
    char *p1 = str;
    char *p2 = str + strlen(str) -1;
    while (p1<p2)
    {
            tmp = *p1;
        *(p1++) = *p2;
        *(p2--) = tmp;
    }
    char *p3 = NULL;
    p1 = str;
    p2 = str;
    while (*p2)
    {
        if (*p2 == ' ')
        {
            p3 = p2 - 1;
            while (p1<p3)
            {
                 tmp = *p1;
                *(p1++) = *p3;
                *(p3--) = tmp;
            }
            p1 = p2 + 1;
        }
        p2++;
    }   
    p3 = p2 - 1;    
    while (p1<p3)   
    {
            tmp = *p1;
        *(p1++) = *p3;
        *(p3--) = tmp;
    }
    puts (str);
    return 0;
}
相关标签: 学习日志