一、提取字符串函数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; }