int substr( char dst[], char src[], int start, int len )
来源:互联网 发布:淘宝的详情页怎样发布 编辑:程序博客网 时间:2024/05/17 23:19
#include <stdio.h>#include <string.h>#include <assert.h>int substr( char dst[], char const str[], int start, int len );int main(){char dst[10];char src[10] = "zhangleiy"; int len = substr( dst, src, 2, 3 ); printf( "目的数组长度 : %d \n", len); printf( "目的数组为 : %s \n", dst); return 0;}int substr( char dst[], char const src[], int start, int len ){assert( dst != NULL && src != NULL ); char *temp = dst;;int dst_len = 0;int src_len = strlen( src );if( start<0 || len<=0 || src_len < start )printf( "提取位置或字符个数不符合要求 !\n" ); int i=0;for( i=0; i<start; i++ ) src++;//while( (*temp++ = *src++) != '\0' && dst_len < len )while( dst_len < len && (*temp++ = *src++) != '\0' ) // 若把比较长度放在后面,就会多复制一个字符dst_len++; *temp = '\0'; return dst_len;}
原答案源码如下:
/*** Extract the specified substring from the string in src.*/intsubstr( char dst[], char src[], int start, int len ){intsrcindex;intdstindex;dstindex = 0;if( start >= 0 && len > 0 ){/*** Advance srcindex to right spot to begin, but stop if we reach** the terminating NUL byte.*/for( srcindex = 0;srcindex < start && src[srcindex] != ’\0’;srcindex += 1 );/*** Copy the desired number of characters, but stop at the NUL if** we reach it first.*/while( len > 0 && src[srcindex] != ’\0’ ){dst[dstindex] = src[srcindex];dstindex += 1;srcindex += 1;len –= 1;}}/*** Null–terminate the destination.*/dst[dstindex] = ’\0’;return dstindex;}
- int substr( char dst[], char src[], int start, int len )
- C语言,从字符串中提取一个字符串,int substr(char dst[], char src[],int start,int len)
- 编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下: Int substr(char dst[], char src[],int start, int len) {} 目标是:从src数组
- C语言,从字符串中提取一个字符串,int substr(char dst[], char src[],int start,int len)目标是:从src数组的起始位置开始向后偏移star
- c语言库函数【string.h】之 substr_(char *dest, const char* src, unsigned int start, unsigned int len)
- c语言库函数【string.h】之strncpy_(char* dst,const char* src,int count)
- int compare(char* dest,char* src)
- char int
- read(char[] b,int off,int len) 和read(char[] b)的区别
- SAX characters(char ch[],int start,int length) 的解释
- Jaxp---characters(char[] ch, int start, int length)
- Java实例:SAX characters(char ch[],int start,int length)
- Java实例:SAX characters(char ch[],int start,int length)
- unsigned int get_svrport(char *, char *, unsigned int);
- typedef int (*A) (char, char);
- char* + int or char or ...
- int const * 、const int *、int *const、const char **与char **
- char and int Convert
- Android获取外部和内部存储空间总大小
- poj1207(The 3n + 1 problem)
- IT 圈里那些经常被读错的词
- oracle 个人学习笔记
- firefox中隐藏flash导致 flash重新加载的问题
- int substr( char dst[], char src[], int start, int len )
- redhat+linux5.5下DNS配置文件获取方法+亲测
- ubuntu11.04网络设备未托管 解决方案
- android 点击返回按钮事件
- JDBC简介
- 敏捷软件开发
- Windows7开启administrator账户的方法
- win7 64位 iis7 HTTP 错误 404.17 - Not Found
- 数据格式(Printf函数的使用方法)