1 char *match( char *s, char ch1, char ch2 ){
int len=;
int m=;
int i=;
while(s[len]){
len++;
} char t[*len+];//防止s字符串全满导致t溢出
while(i<(*len+)){
t[i]='\0';
i++;
}//初始化
i=;
while(s[i]!=ch1&&s[i]){
i++;
}//寻找ch1在s中的位置
int k=i;
if(i<len){
do{
t[m]=s[i];
m++;
i++;
}while(s[i]!=ch2&&s[i]);//将从ch1开始的字符存入t中
if(i<len){
t[m]=s[i];
m++;
}//若是存在ch2,将ch2存入t中
t[m]='\n';
while(s[k]){
m++;
t[m]=s[k];
k++;
}//存入s中ch1的地址 }else
{
t[]='\n';
} //至此t的字符串已经完善
i=;
while(t[i]){
s[i]=t[i];
i++;
}//将s替换为t
s[i]='\0';//防止t<s return s;
}

写这个函数的时候思路倒是很清晰,但是写完之后遇到了一堆问题

1.最初我是直接return t;但是返回主程序后printf时出现乱码,后面查询资料后得知是关于堆栈,函数中的变量一旦出了函数体,就会被释放,

此时输出该变量的地址就会是乱七八糟的东西,目前我能想到的解决方法就是用s将t带回;

2.在PTA中char *t[2*len+1]={'\0'};编译不能通过,但在devc++中又能通过,如果不初始化t,就会导致s复制t时多复制出一些不应该出现的东西,于是我用了最原始的while循环;

3.s[i]='\0';很容易被忽略,这是防止t的字符串长度短于s原始的长度,以至于t被复制完后中还有字符。

函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。的更多相关文章

  1. 给定一个英文字符串,请编写一个PHP函数找出这个字符串中首先出现三次的那个英文字符(需要区分大小写),并返回

    给定一个英文字符串,请编写一个PHP函数找出这个字符串中首先出现三次的那个英文字符(需要区分大小写),并返回 //统计字符串中出现的字符的出现次数 public function strNum(){ ...

  2. JS 从一个字符串中截取两个字符串之间的字符串

    /************************************************* 函数说明:从一个字符串中截取 两个字符串之间的字符串 参数说明:src_str 原串, start ...

  3. 打印文本中的所有单词,并且打印每个单词出现的行号,非实义单词不考虑(TCPL,练习6-3)

    建立一棵二叉树,每个接单存放单词以及指向一个链表的指针,以及指向左右节点的指针.链表内存放行号以及指向下一个链表节点的指针. 每录入一个单词,先寻找二叉树,再寻找它的链表,分别将单词和行号插入二叉树和 ...

  4. 20155301-滕树晨 第二次随笔作业--从现有技能获取的经验应用于JAVA中

    第二次随笔--从现有技能获取的经验应用于JAVA中 你有什么技能比大多人(超过90%以上)更好? 这个想了半天,有一个是我乒乓球还是比较擅长的,在学校里可能比百分之90的人要强,在外面肯定是不如了.再 ...

  5. 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中 T-SQL核心语句形式: SELECT     --指定要选择的列或行及其限定  [INTO ]      --INTO子句 ...

  6. js打印Iframe中的内容,并且不需要预览。

    js打印Iframe中的内容,并且不需要预览 js代码如下: <script type="text/javascript" language="Javascript ...

  7. python中print()函数的“,”与java中System.out.print()函数中的“+”

    python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能. python中: print("hello,world!") 输出 ...

  8. day5--装饰器函数的信息打印,迭代器,生成器,列表推导式,内置函数

    本文档主要内容: 一 装饰器函数的信息打印 二 迭代器 三 生成器 四 生成器表达式和列表推导式 五 内置函数 一 装饰器函数的信息打印 一个函数一旦被装饰器给装饰后,这个函数的信息使用原来的命令打印 ...

  9. 选择列表中的列……无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    今天用SQL Server尝试实现一个SQL语句的时候,报了如标题所示的错误,通过在百度里面搜索,并亲自动手实现,终于发现问题所在,现在把它记录下来. 语句如下: select [OrderID],[ ...

随机推荐

  1. 【笔记】机器学习 - 李宏毅 - 1 - Introduction & next step

    Machine Learning == Looking for a Function AI过程的解释:用户输入信息,计算机经过处理,输出反馈信息(输入输出信息的形式可以是文字.语音.图像等). 因为从 ...

  2. GHO文件安装到Vmware的两种姿势

    1.使用 Ghost11.5.1.2269 将gho转换为vmdk文件(虚拟机硬盘),Vmware新建虚拟机自定义配置,然后添加已有的虚拟硬盘文件. 注意ghost的版本,如果你是用Ghost11.5 ...

  3. Sublime text3 最新版破解,永久有效

    下载sublimeText3的安装包并安装(已经安装的可以忽略) 在hosts文件中添加:127.0.0.1    license.sublimehq.com(hosts文件地址:C:\Windows ...

  4. Nginx配置Https指南

    前言 本文是对Nginx配置SSL证书的总结. 申请SSL证书 你可以从任何证书提供商处申请证书,这里以阿里云为例. 打开阿里云SSL证书控制台,点击购买证书 选择免费型一年期的证书,点击立即购买 注 ...

  5. 输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示

    需求:输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示. 为什么会有这样的需求呢?在重新搭建redis ...

  6. Linux 基础操作命令

    关机和注销 shutdown -h now 立刻关机 shutdown -r now 立刻重启 shutdown -h + 1分钟后关机(重启同样用法) shutdown -h : 11点钟关机(重启 ...

  7. 搜索 rerank : learn to rank 算法

    (1)LambdaMART 算法可参考如下两篇博客: http://www.cnblogs.com/wowarsenal/p/3900359.html http://www.cnblogs.com/w ...

  8. Socket之UDP

    相对于TCP/IP来说,UDP更像是发快递和写信,不需要判断和对方是否连通就可以发送,而TCP/IP必须确认连通之后才可以发送,这样UDP通讯其实不能严格按照TCP/IP的说法区分服务器和客户端,对于 ...

  9. 1级搭建类112-Oracle 19c SI FS(CentOS 8)

    Oracle 19c 单实例文件系统在 CentOS 8 上的静默安装

  10. 南昌邀请赛B题(拉格朗日插值)

    题目链接:https://nanti.jisuanke.com/t/40254 #include<iostream> #include<cstdio> #include< ...