《C和指针》章节后编程练习解答参考——6.2
2015-11-15 17:03
381 查看
《C和指针》——6.2
题目:
编写一个函数,删除源字符串中含有的子字符串部分。
函数原型:
int del_substr(char *str, char const *substr);
解答代码:
注:
1、应先判断源字符串中是否包含子字符串,检测时要保持两个指针增量同步。
2、子字符串对比完后判断是否包含于源字符串。
题目:
编写一个函数,删除源字符串中含有的子字符串部分。
函数原型:
int del_substr(char *str, char const *substr);
解答代码:
#include <stdio.h> int del_substr(char *str, char const *substr) { if ((*str != NULL) && (*substr != NULL)) { for(; *str != '\0'; str++) { if (*str == *substr) { int i=0; while ((*(str+i) != '\0') && (*(substr+i) != '\0')) { if (*(str+i) == *(substr+i)) { i++; //保持两个字符串指针同时加1 } else break; } if ((*(substr+i) == '\0')) //子字符串检测结束 { for(; *(str+i) != '\0'; str++) { *str = *(str+i); } *str = '\0'; //将源字符串后边的字符舍弃 return 1; } else { return 0; } } } } return 0; } int main() { char source[] = "ABCDEFGHIJKLMN"; char subsource[] = "DEF"; printf("%s\n", source); printf("%s\n", subsource); if (del_substr(source, subsource) == 1) { printf("Delete the substr:\n"); printf("%s", source); } else printf("Have not found the substr!"); getchar(); return 0; }
注:
1、应先判断源字符串中是否包含子字符串,检测时要保持两个指针增量同步。
2、子字符串对比完后判断是否包含于源字符串。
相关文章推荐
- 自己做的demo---关于java控制台输入跟类型转化跟处理异常的demo
- [C++] Vtable(虚函数表)
- 转换 Github-Favored Markdown 成 PDF
- jdk安装环境配置
- Python字符串
- 用C++11学习多线程
- 【程序员技术练级】学习一门脚本语言 python(一)文件处理
- java泛型(一)、泛型的基本介绍和使用
- ubuntu14.04,安装Git(源代码管理工具)
- ubuntu14.04,安装Git(源代码管理工具)
- ubuntu14.04,安装Git(源代码管理工具)
- Java中多态转型的问题理解及多态概述
- C++学习第三课—数组
- 通过java代码发邮件
- jdk环境变量配置
- java基础知识点二(下)
- C# 委托及各种写法
- [No00004B]Windows 下面为Python3.5安装NoteBook
- Java [leetcode 35]Search Insert Position
- java中的final总结