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

学习日志第二天

程序员文章站 2022-05-29 13:36:35
...

苏嵌 项目实战

学习日志 姓名:黄志恒 日期:2018.9.4

今日学习任务
进栈出栈清空栈

今日任务完成情况

(详细说明本日任务是否按计划完成,开发的代码量)
P1

#include<stdio.h>
#include<string.h>
#define N 50

void strRev(char *s)
{
        char temp;
        char *end = s + strlen(s) -1;
        while (end > s)
        {
                temp = *s;
                *s = *end;
                *end = temp;
                --end;
                ++s;
        }
}

int main()
{
        char s[N];

        printf("Enter string!\n");
        fgets(s,N,stdin);
        strRev(s);

        printf("The strRcv string!");
        puts(s);

        return 0;
}

学习日志第二天

P2

#include<stdio.h>

int fun2(int num);
int fun16(int num);
int fun8(int num);

int main()
{
    int num,kind;

    printf("Enter the number:\n");
    scanf("%d",&num);
    printf("what kind of number do you want to change(2,16,8):\n");
    scanf("%d",&kind);

    if(kind == 2)
    {
        fun2(num);
    }
    else if(kind == 16)
    {
        fun16(num);
    }
    else if(kind == 8)
    {
        fun8(num);
    }
    else
    {
        printf("error!\n");
    }
    return 0;
}

int fun2(int num)
{
    int s[32]={0};
    int i,n=0;
    while(num != 0)
    {
        s[n++]=num%2;
        num=num/2;
    }
    printf("二进制数为:");
    for(i=n -1;i>=0;i--)
    {
        printf("%d",s[i]);

    }
    printf("\n");
    return 0;
}

int fun16(int num)
{

    int s[32]={0};
    int i,n=0;
    while(num != 0)
    {
        s[n++]=num%16;
        num=num/16;
    }
    printf("十六进制数为:");
    for(i=n -1;i>=0;i--)
    {
        printf("%d",s[i]);

    }
    printf("\n");
    return 0;
}

int fun8(int num)
{

    int s[32]={0};
    int i,n=0;
    while(num != 0)
    {
        s[n++]=num%8;
        num=num/8;
    }
    printf("八进制数为:");
    for(i=n -1;i>=0;i--)
    {
        printf("%d",s[i]);

    }
    printf("\n");
    return 0;
}

学习日志第二天

P3

#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    printf("请输入字符串\n");
    scanf("%s",a);
    char *c =a;
    char b[10];
    printf("请输入子串\n");
    scanf("%s",b);
    char *d=b;
    int n;
    int num=0;
    n=strlen(d);
    while(strlen(c)>0)
    {
        if(strncmp(c,d,n)==0)
        {
            num++;
            c+=n;
        }
        else
        {
            c++;
        }
    }
    printf("%d\n",num);
    return 0;
}

学习日志第二天

P4

#include<stdio.h>
#include<string.h>
#define N 50

void strRev(char *s)
{
    char temp;
    char *end = s + strlen(s) -1;
    while (end > s)
    {
        temp = *s;
        *s = *end;
        *end = temp;
        --end;
        ++s;
    }
}

int main()
{
    char s[N];

    printf("Enter string!\n");
    fgets(s,N,stdin);
    strRev(s);

    printf("The strRcv string!");
    puts(s);

    return 0;
}

学习日志第二天

P5

#include <stdio.h>

int find(char *s,char *a,char *b);

int main()
{
    char s[100],a[100],b[100];        //定义三个数组存放字符串和头尾字符串

 printf("Enter the long string : \n");        //提示用户输入字符串
 scanf("%s",s);
 printf("Enter the head string : \n");
 scanf("%s",a);
 printf("Enter the tail string : \n");
 scanf("%s",b);

 find(s,a,b);        //调用函数

    return 0;
}

int find(char *s,char *a,char *b)
{
 int head,tail;        //定义头尾节点位置变量
 int i = 0,j = 0,k = 0,flag = 0;        //定义循环变量i,j,k和标志位flag

 while(s[i] != '\0') 
 {
  if((s[i] == a[j]) && !flag)        //当有一个字符和头字符串相等,继续判断是不是头字符串
  {
   head = i;        //将字符串位置赋值给头节点位置
      while((s[i] == a[j]) && s[i] != '\0')        //进入循环判断头字符串
      {
       i++;
       j++;
    flag = 1;       
      }
  }

  if((a[j] == '\0') && flag)        //当头字符串遍历结束并且标志位变为1,就认为已经找到头字符串
  {
      while((s[i] == b[k]) && s[i] != '\0')        //进入循环判断尾字符串
      {

学习日志第二天

今日开发中出现的问题汇总
没问题

今日未解决问题
没有

今日开发收获

贼多

自我评价
nice

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

其他