《C和指针》——6.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=;
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 ;
}
else
{
return ;
}
}
}
}
return ;
} int main()
{
char source[] = "ABCDEFGHIJKLMN";
char subsource[] = "DEF"; printf("%s\n", source);
printf("%s\n", subsource); if (del_substr(source, subsource) == )
{
printf("Delete the substr:\n");
printf("%s", source);
}
else
printf("Have not found the substr!"); getchar();
return ;
}

注:

1、应先判断源字符串中是否包含子字符串,检测时要保持两个指针增量同步。

2、子字符串对比完后判断是否包含于源字符串。

《C和指针》章节后编程练习解答参考——6.2的更多相关文章

  1. 《C和指针》章节后编程练习解答参考——6.3

    <C和指针>——6.3 题目: 编写一个函数,把参数字符串中的字符反向排列. 函数原型: void reverse_string(char *string); 要求: 使用指针而不是数组下 ...

  2. 《C和指针》章节后编程练习解答参考——第5章

    5.1 题目: 略 解答代码: #include <stdio.h> int main(void) { char ch; while (((ch = getchar()) != EOF) ...

  3. 《C和指针》章节后编程练习解答参考——6.6

    <C和指针>——6.6 题目: 在指定的下限.上限之间使用数组方法查找质数,并将质数提取出来. 要求: 略 解答代码: #include <stdio.h> #define U ...

  4. 《C和指针》章节后编程练习解答参考——6.4

    <C和指针>——6.4 题目: 质数是只能被1和本身整除的整数. 在1到1000之间的质数,在数组中剔除不是质数的数. 解答代码: #include <stdio.h> #de ...

  5. 《C和指针》章节后编程练习解答参考——6.1

    <C和指针>——6.1 6.1 题目: 编写一个函数,在一个字符串中进行搜索,查找另一子字符串中出现的字符. 函数原型如下: char *find_char(char const *sou ...

  6. 《C和指针》章节后编程练习解答参考——第10章

    10.1 #include <stdio.h> typedef struct { unsigned ]; unsigned ]; unsigned ]; }TelphoneNumber; ...

  7. 《C和指针》章节后编程练习解答参考——第9章

    9.1 #include <stdio.h> #include <ctype.h> #include <string.h> #define N 100 int ma ...

  8. 《C和指针》章节后编程练习解答参考——第8章

    8.1 #include <stdio.h> int main (void) { int a, b, c, d; // 不使用嵌套花括号初始化 unsigned ][][][] = { , ...

  9. DSAPI多功能组件编程应用-参考-Win32API常数

    DSAPI多功能组件编程应用-参考-Win32API常数 在编程过程中,常常需要使用Win32API来实现一些特定功能,而Win32API又往往需要使用一些API常数,百度搜索常数值,查手册,也就成了 ...

随机推荐

  1. 用python 装饰器打log

    # coding=utf-8    from time import time def logged(when):     def log(f,*args,**kargs):         prin ...

  2. UVa10886 Standard Deviation

    留坑(p.345) 这是什么意思 暴力? 然而那些有两个人跑的那么快是为什么?(有个人竟然是陈锋...)

  3. hdu2817 A sequence of numbers

    这题就是判断是等差数列还是等比数列,然后计算结果mod200907 因为数字比较大10的九次方 所以等比用到了快速幂求模 不懂可以看看算法导论,在大数那里有讲 #include <iostrea ...

  4. asp.net 动态添加多附件上传.

    最近有人问起动态多文件上传,想要做到类似于邮箱添加附件的效果,这个功能其实比较简单,就是往form中添加file元素.在用户选择完文件后,再添加一个file控件,由于file控件过多,视觉上不好看,所 ...

  5. [Oracle] Data Pump 详细使用教程(4)- network_link

    [Oracle] Data Pump 详细使用教程(1)- 总览 [Oracle] Data Pump 详细使用教程(2)- 总览 [Oracle] Data Pump 详细使用教程(3)- 总览 [ ...

  6. Android开源项目分类汇总【畜生级别】[转]

    Android开源项目分类汇总 欢迎大家推荐好的Android开源项目,可直接Commit或在 收集&提交页 中告诉我,欢迎Star.Fork :) 微博:Trinea    主页:www.t ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(7)-MVC与EasyUI DataGrid

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(7)-MVC与EasyUI DataGrid 没有源码的同学跳到第六讲下载源码再来. 我们需要漂亮的UI, ...

  8. OpenCV 最小二乘拟合方法求取直线倾角

    工业相机拍摄的图像中,由于摄像质量的限制,图像中的直线经过处理后,会表现出比较严重的锯齿.在这种情况下求取直线的倾角(其实就是直线的斜率),如果是直接选取直线的开始点和结束点来计算,或是用opencv ...

  9. [置顶] Linux 流量控制

    在如今的网络界,也许TC知道的人并不多了,这篇文章做留恋吧. 以前研究TC时记录下的讲解与配置文件. eth1:192.168.1.1,内网口  业务需求:保证正常的网页浏览,FTP,SMTP,POP ...

  10. leetcode-1 Two Sum 找到数组中两数字和为指定和

     问题描写叙述:在一个数组(无序)中高速找出两个数字,使得两个数字之和等于一个给定的值.如果数组中肯定存在至少一组满足要求. <剑指Offer>P214(有序数组) <编程之美& ...