C语言 编写一个函数,它从一个字符串中提取一个子字符串

news/2024/11/29 13:33:23/

编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下:

int substr(char dst[], char src[],intstart, int len) {}

目标:

       从src数组起始位置向后偏移start个字符的位置开始,最多复制len个非NUL字符到dst数组。在复制完毕之后,dst数组必须以NUL字节结尾。函数的返回值是存储于dst数组中的字符串的长度。

注意:

函数的声明与调用;

空字符即为 \0;

#include <stdio.h>
int substr(char dst[], char src[],int start, int len)
{int i;for(i=0;i<len;i++){dst[i]=src[start+i];    //从第start+i个元素开始向数组内赋值}dst[i]='\0';return i;
}
int main()
{char dst[10];               //定义实参char src[]="abcdef";int m;m=substr(dst,src,2,4);      //函数调用printf("%s\n",dst);printf("%d",m);return 0;
}



上面的程序有一个问题就是如果给定赋值的个数超出了整个长度,虽然字符串输出是正确的,但是输出的字符串的个数却超了。所以我们给它加上一个判断来看所给的值是否超过了本身剩下的字符串的长度;

#include <stdio.h>
int substr(char dst[], char src[],int start, int len)
{char *ps = src + start;     int n = strlen(ps);         //定义一个指针来求字符串长度int i = 0;if(n<len){len = n;}while(len--){dst[i]= ps[i];i++;}dst[i] = '\0';
}
int main()
{char dst[] = "abcdefghi";char src[] = "bit-tech";substr(dst,src,2,7);printf("%s\n",dst);return 0;
}











http://www.ppmy.cn/news/681734.html

相关文章

保持一只清醒的耳朵

当生命的种种意外和不幸袭来&#xff0c;甚至将你掩埋、无法自救&#xff0c;不要彷徨无助&#xff0c;我的朋友。请记住&#xff0c;务必让自己始终保持一只清醒的耳朵&#xff0c;听得到身旁好友的诤言&#xff0c;尝试遵循着去做。千万不要自我封闭&#xff0c;躺在自己挖就…

耳朵的问题大了

今天下午去看了耳朵 从两个耳朵里掏出了很大的耳屎 好恐怖呀 可是又出现另一个问题 我得耳朵出现了耳鸣 好烦人哪 我现在都没去上课 呆在寝室里 发表于2006年04月04日 7:22 PM

又一个开公司的

今天又知道一个同事开公司了&#xff0c;www.blin.cn&#xff0c;大家没事去看看&#xff0c;也是个技术厉害的角色。 自己创业真的很辛苦&#xff0c;周围这么多创业的同事&#xff0c;也许能激发你创业的激情。

从左耳朵跳到右眼跳

今天早上是左耳朵在跳&#xff0c;下午左耳朵停止了 右眼又开始了。 ##楔子 好奇&#xff0c;kindle是怎么把书推送到设备上去的。大概是邮箱发过去的。前几天找了几个电子书&#xff0c;通过邮箱发送。提示您向 Kindle 发送的文件出现问题。当时没怎么注意。那些kinlde论坛大概…

饶了我的耳朵吧,音乐

声乐家席慕德女士有一次搭出租车&#xff0c;车上正大放流行曲。她请司机调低一点&#xff0c;司机说&#xff1a;"你不喜欢音乐吗&#xff1f;"席慕德说&#xff1a;"是啊&#xff0c;我不喜欢音乐。" 一位音乐家面对这样的问题&#xff0c;真可谓啼笑皆非…

在一个大字符串中寻找子串

在一个大字符串中寻找子串的两种实现方法 第一种是使用一个点进行查找的方式&#xff0c;以下是实现的代码。 bool findSub1(string scr, string tar) {using namespace std;if (scr.empty() || tar.empty() || scr.size() < tar.size())return false;for (int i 0; i &…

纪念左耳朵耗子(陈皓)

5月17日&#xff0c;MegaEase 公司在 GitHub 创建了「纪念左耳朵耗子」仓库&#xff0c;用于记录关于陈皓本人的一些生平经历&#xff0c;您如果认识陈皓&#xff0c; 或曾经和陈皓打过交道&#xff0c;欢迎您通过PR来写出您和陈皓的故事。 仓库地址&#xff1a;https://githu…

“耳朵人艺术”敲响了中国,也叫醒了世界

2011年,当代艺术家田太权创立了“耳朵人”这个少儿美术教育品牌,从最初的12个孩子到重庆地区3个校区、一个分校的上千学员,再到线上教学成为几千个孩子的朋友。这九年时间,不仅是数字的累积,也是一个品牌的沉淀。 一、不惧艰难,努力改变 “因为想改变中国教育现状,从而改变中…