编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下:
int substr(char dst[], char src[],int start, int len)
{}
目标是:从src数组起始位置向后偏移start个字符的位置开始,最多复制len个非NULL字符到dst数组。
在复制完毕之后,dst数组必须以NULL字节结尾。函数的返回值是存储于dst数组中的字符串的长度。

首先确定要提取的子字符串的长度,用指针指向该字符地址,这时需要判断剩余字符长度是否比len长,如果少于len则需让len等于n。

这时就可以复制src字符串中的字符到dst中,最后由于要求dst末尾以NULL结尾,所以让其末尾为‘\0’。

最后返回dst中字符串的长度!

代码实现如下:

#include<stdio.h>
#include<string.h>
int substr(char dst[],char src[],int start,int len)
	char* p = src + start;   //定义指针变量指向需要提取的字符的地址
	int n = strlen(p);       //求字符串长度
	int i = 0;
		if(n < len)
			len = n;
		while(len != 0)
			dst[i] = src[i+start];
			len --;
		}                        //复制字符串到dst中
		dst[i] = '\0';
	return 0;
int main()
	char dst[15];
	char src[] = "ret_is_good_boy!";
	substr(dst,src,5,19);
	printf("%d\n",strlen(dst)+1);      //输出dst字符串的长度
	printf("%s\n",dst);                //输出提取出来的字符串
	return 0;
}
结果如下: 接着,我们判断传入的截 长度是否为负数,如果是,则将其设置为源 字符串 剩余部分的长度。函数内部会根据给定的起始位置和截 长度,截 字符串 的一段 子串 ,然后返回该 子串 。在主函数 ,我们定义了 一个 字符串 "Hello, world!“,然后调用substring函数,从 字符串 的第7个字符开始,截 长度为5的 子串 。在 C语言 ,我们经常需要对 字符串 进行截 操作,即从 一个 字符串 一部分作为新的 字符串 。总之, C语言 提供了很多 字符串 处理的函数,我们只需要灵活运用这些函数,就可以轻松 实现 字符串 等各种功能。 /*处理 文字符*/ /*遍历 字符串 ,非ASCII字符读 2个字节,ASCII读 一个 字节,获 字符串 长度*/ int StrLenU(const char* string) int len = 0 ; const char* p = string; while(*p++ != '\0') if(*p > 0x80 || *p < 0) len++; return len; //定义 一个 结构体数组 typedef struct { char data[6];// 字符串 12345一共5个数,为什么分配6个空间,原因是 c语言 字符串 后面自带 一个 /0多以多分配 一个 空间 int length; }SqString; //获 子串 的 方法一:define _CRT_SECURE_NO_WARNINGS 1include include includedefine _CRT_SECURE_NO_WARNINGSinclude include includeinclude 有些同学肯定该说了,“hello” 和 “world” 之间存在空格 “ ”,可以循环复制string1的内容,直到检测到空格便停止、退出、打印。确实哈,这是一种最为常见的 提取 方式,也是我下面要贴出的代码形式。 提取 字符串 的特定部分的 字符串 ,这句话是什么意思呢?那么,我们怎么做,可以 出第 一个 单词呢?咱们废话少说,代码见真知。 编写 一个 函数,它从 一个 字符串 提取 一个 字符串 。函数原型如下:intsubstr(chardst[],charsrc[],intstart,intlen){}目标是:从src数组起始位置向后偏移start个字符的位置开始,最多复制len个非NUL字符到dst数组。在复制完毕之后,dst数组必须以NUL字节结尾。函数的返回值是存储于dst数组 字符串 的长度。代码 实现 :... while(*p!=0x3a)p 字符串 可以是我们获 的或者是我们自己定义的,这里我们是截 :之后或者 字符串 里的数字,我们观察这段 字符串 有什么特点。 我们发现数字开头的 字符串 前是&quot;:&quot;,我们对应ASCII表找到&quot;:&quot;对应的ASCII值。 这里附带ASCII表的链接,https://baike.s...