zoukankan      html  css  js  c++  java
  • 实验2

    p193:

    7题:

    编写函数 delstr(char *pc,int im,int in),删除字符串中制定位置im处开始的in个字节,删除成功函数返回被删字符串,否则返回空值。

    #include<stdio.h>
    #include<string.h>
    char *delstr(char *pc,int im,int in);
    int main()
    {
        char str[50];
        int a,b;
        char *p;
        printf("请输入一串字符:
    ");
        gets(str);
        printf("请输入删除的位置和个数:
    ");
        scanf("%d%d",&a,&b);
        p=delstr(str,a,b);
        if(p==NULL)
        {
            printf("超出范围。"); 
        }
        else
        {
            puts(p);
        }
        return 0;
    }
    char *delstr(char *pc,int im,int in)
    {
        char *temp1=pc+im-1,*temp2=temp1+in-1;
        char *end=NULL,*p;
        static char a[50];
        int len=0,i=0; 
        len=strlen(pc);
        end=pc+len-1;
        if(temp1>end||temp2>end)
            return NULL;
        else
        {
            for(;temp1<=temp2;temp1++)
            {
                a[i++]=*temp1;
                *temp1=' ';
            }
        }
        p=a;
        return p;
    }

    8题:

    编写函数strlink(char *pv1,char *pc2),把字符串pc2连接到pc1的后面,形成一个完整的字符串。

    #include<stdio.h>
    void strlink(char *pc1,char *pc2);
    int main()
    {
        char a[50]={"hello world"};
        char b[10];
        puts(a); 
        printf("请输入一串字符,将连接到上面字符串中:");
        gets(b);
        strlink(a,b);
        puts(a);
        return 0;
     } 
     void strlink(char *pc1,char *pc2)
     {
         for(;*pc1!='';pc1++);
         for(;*pc2!='';pc1++,pc2++)
         {
             *pc1=*pc2;
         }
         *pc1='';
     }

    9题:

    编写函数char *huiwen(char *pc),检查字符串pc是否是回文,如果是返回字符串“yes”,否则返回“no”.如:abcba是回文。

    #include<stdio.h>
    #include<string.h>
    char *huiwen(char *pc);
    int main()
    {
        char a[50];
        char *link=NULL;
        printf("请输入一串字符,将判断其是否是回文:
    ");
        gets(a);
        link=huiwen(a);
        puts(link);
        return 0;
    }
    char *huiwen(char *pc)
    {
        int len=0,flag=1;
        char *temp=NULL,*str=NULL;
        len=strlen(pc);
        temp=pc+len-1;
        for(;pc!=temp;pc++,temp--)
        {
            if(*pc!=*temp)
                flag=0;
        }
        if(flag)
        {
            str="yes";
        }
        else
        {
            str="no";
        }
        return str; 
    }

    总结: 

     1 .char a[]="hello world";
    这里数组是字符串变量,是可以改变的。
    但是 char *str="hello world";  "hello world"是字符串常量,用一个指针指向了字符串常量,但是,常量值是不能改变的,所以,你要修改它的值就会出错。 
    2.编写连接函数时,被连接的字符串数组要定义的足够长,不然会越界。
    3.在返回指针时,如果指针指向的是常量,则可以返回成功,否则当函数调用结束后,栈被释放,无法找到指针指向的内容。
  • 相关阅读:
    Redis:特殊数据类型,hyperloglog(基数),bitmap(位存储)
    Redis:特殊类型geospatial(地理位置类型,纬经度)
    Redis:zset常用指令
    Redis:hash常用指令
    Redis:set集合常用常用指令
    Pytorch学习-数据操作
    天池Python训练营笔记—Python基础入门:从变量到异常处理
    Python基础语法快速复习-面对对象编程
    Python基础语法快速复习-函数式编程
    Python基础语法快速复习-高级特性
  • 原文地址:https://www.cnblogs.com/TX980502/p/6560581.html
Copyright © 2011-2022 走看看