想要用C语言编写一个Mid函数,实现从一个文本字符串的指定位置开始,截取指定数目的字符,代码有错误

Python013

想要用C语言编写一个Mid函数,实现从一个文本字符串的指定位置开始,截取指定数目的字符,代码有错误,第1张

#include <stdio.h>

#define N 100

char *Mid(char a[],int i,int j)//返回值类型是指针

void main()

{

    char k[12]="HELLOWWORLD"

    printf("%s", Mid(k,3,4) )

}

char *Mid(char a[],int i,int j)

{

    int m,t=0

    static char b[N] //为保证不丢失,定义成静态

    for(m=i-1m<i+j-1m++)

    {

        b[t++]=a[m]

    }

    b[t]=0//字符串结束符

    return b

}

几点错误:

1、a数组你初始赋值从下标1 开始,但查找的时候 范围是 0到n-1,所以最大数永远找不到:)

2、二分法里面判断中间值 a[m] 如果不等于 y,那么要判断是大了还是小了,我看你数组 a 原先是从小到大排的,但和后面逻辑正好相反:

else if(a[m]>y)

t=m+1 ===》b = m-1

else

b=m-1===》t = m +1

l+r的值右移1位,相当l+r的值除以2取整。

Int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。