在一个字符串中提取子字符串

来源:互联网 发布:淘宝店兔家公子美妆店 编辑:程序博客网 时间:2024/05/18 02:39

一、提取字符串函数int substr(char dst[], char src[], int start, int len);

分析:

源字符串src[]用来提供字符串;

目的字符串dst[]用来接收子字符串;

从src[]的起始位置向后偏移,从start的位置开始最多复制len个字符,当src[]中字符数可以从start个字符开始复制len个字符,那么可以复制len个字符;当从start开始到字符串结束,即遇到‘\0’时,小于len个字符,那么只需复制从start开始到字符串结束的字符串。

代码如下:

#include<stdio.h>#include<string.h>int substr(char dst[], char src[], int start, int len){int i = 0;int j = 0;i = start;while (src[i]!='\0'){ assert(len!=0)dst[j] = src[i];i++;j++;if (i == (start + len)){dst[j] = '\0';return (strlen(dst));}}dst[j] = '\0';return (strlen(dst));}int main(){int start = 0;int len = 0;int length = 0;char str1[] = "abcdefgh";char str2[10] = { 0 };printf("请输入偏移量start and len:");scanf("%d%d", &start, &len);length = substr(str2, str1, start, len);printf("length=%d\nstr2=%s\n", length, str2);system("pause");return 0;}

 

0 0