Bootstrap

C语言实现字符串截取函数left、mid和right

https://www.cnblogs.com/zhchoutai/p/7170505.html

C语言字符串截取须要自己编程实现,只是。网络时代,自然不用自己从头写了。网上各种方法的实现代码已经多如牛毛了,这儿抄录一个感觉不错的备案。

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

/*从字符串的左边截取n个字符*/
char * left(char *dst,char *src, int n)
{
    char *p = src;
    char *q = dst;
    int len = strlen(src);
    if(n>len) n = len;
    while(n--) *(q++) = *(p++);
    *(q++)='\0'; /*有必要吗?非常有必要*/
    return dst;
}

/*从字符串的中间截取n个字符*/
// 修改版
char * mid( char *dst, char *src, int n, int m ) /*n为长度,m为位置*/
{
    char *p = src;
    char *q = dst;
    int len = strlen( src );
    if( m < 0 ||  m >= len ||  n < 1 ) return NULL;

    len -= m;
    if( n > len ) n = len;
    p += m;
    while( n-- ) *( q++ ) = *( p++ );
    *( q++ ) = '\0'; /*有必要吗?非常有必要*/
    return dst;
}


/*从字符串的右边截取n个字符*/
char * right(char *dst,char *src, int n)
{
    char *p = src;
    char *q = dst;
    int len = strlen(src);
    if(n>len) n = len;
    p += (len-n);   /*从右边第n个字符開始。到0结束,非常巧啊*/
    while(*(q++) = *(p++));
    return dst;
}

;