基本问题:给定一个strContent,strWord,使用strWord 匹配strContent,匹配成功,将匹配部分全部替换为‘*’ ,并返回匹配成功个数。注意不能使用库函数。

例如:strContent = "today is sunday."  strWord = "day"  那么应该返回2,而且strContent变成 "to*** is sun***."

问题不难,但是对我来说有些考验。

#include <stdlib.h>
#include <stdio.h>
#include <string.h> // 用来测试,输入数据用的,题目要求不能使用库函数 int filter(char *strContent, char *strWord)
{
int count = ;
char *p = strContent;
char *s = strWord;
if (p == NULL || s == NULL)
exit();
while(*p != '\0')
{
char *p1 = p;
s = strWord;
for(;*p1 == *s && *s!= '\0';p1++,s++);
if (*s == '\0')
{
count++;
s = strWord;
while(*s++ != '\0') *--p1 = '*';
}
if (*p1 == '\0')
{
break;
}
p++;
}
return count;
} int main(int argc, char *argv[])
{
char *strContent = (char *) malloc();
char *strWord = (char *) malloc();
strcpy(strContent, argv[]);
strcpy(strWord, argv[]);
int result = filter(strContent, strWord);
printf("result : %d\n", result);
printf("strContent : %s\n", strContent);
return ;
}

我的方法很笨,想了很久,才能够完成,真的是惭愧。

如果有更好的办法,求指教。

C语言实现 字符串过滤并修改并返回个数的更多相关文章

  1. C++_系列自学课程_第_9_课_C语言风格字符串_《C++ Primer 第四版》

    前面说了写关于数组和指针的内容,这次在这里讨论一下字符串,讨论一下C语言风格的字符串. 在C语言里面我们利用字符数组来对字符串进行处理, 在C++里面我们前面说过一种类类型string可以对字符串进行 ...

  2. java与C语言在字符串结束符上的区别

    综述:在C语言中字符串或字符数组最后都会有一个额外的字符‘\0’来表示结束,而在java语言中没有结束符这一概念.具体见下面分析. 1. C 语言 在C语言中字符串和字符数组基本上没有区别,都需要结束 ...

  3. C语言里字符串的解析

      根据给定的字符串,按照一定规则解析字符串,卡住好几次,这次做个笔记,以供参考 函数名称:   strtok 函数原型:   char *strtok(char *s1, const char *s ...

  4. C语言入门-字符串

    还是要继续学习,每天给自己打气. 字符数组 char word[] = {'H','e','l','l','o'}; 这不是c语言的字符串,不能用字符串的方式做计算 一.字符串 char word[] ...

  5. go语言之字符串、指针、数组、切片、结构struct、面向对象

    一: 字符串 概述: Go 语言将字符串作为 种原生的基本数据类型,字 符串的初始化可以使用字符串字面量. (1)字符串是常量,可以通过类 数组 索引访问其字节单元,但是不能修改某个字节的值 (2)宇 ...

  6. C语言中字符串详解

    C语言中字符串详解 字符串时是C语言中非常重要的部分,我们从字符串的性质和字符串的创建.程序中字符串的输入输出和字符串的操作来对字符串进行详细的解析. 什么是字符串? C语言本身没有内置的字符串类型, ...

  7. R语言拆分字符串

    R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...

  8. C语言之字符串处理函数

    C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...

  9. c语言的字符串操作(比较详细)

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

随机推荐

  1. python学习:环境搭建

    1.图解eclipse环境下安装python3.x插件支持:http://www.tuicool.com/articles/M3Afyu 其中如果 然后,选择Add按钮,Name:Python3,Lo ...

  2. java注解(Annotation)解析

    注解(Annotation)在java中应用非常广泛.它既能帮助我们在编码中减少错误,(比如最常见的Override注解),还可以帮助我们减少各种xml文件的配置,比如定义AOP切面用@AspectJ ...

  3. cxf client端借口类型找不到问题

    问题: log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.Exception in ...

  4. mac 笔记

    ---恢复内容开始--- /* 因为外出mac 办公的时候越来越多,有时候4g wifi 流量告急,不得不寻找破解之道. */ 安装port& aircreak-ng sudo port in ...

  5. IE6-8下自定义标签的表现

    IE6-8是支持自定义标签,但只支持<xxx-yyy />这样的形式,它会翻译成<xxx-yyy></xxx-yyy> 如果你想内套子标签会失败, <ms-k ...

  6. Maven本地仓库及远程仓库

    转载自:http://blog.csdn.net/wanghantong/article/details/36427433 Maven 仓库的分类: maven的仓库只有两大类:1.本地仓库 2.远程 ...

  7. ios 判断相册文件图片大小的方法

    ALAssetsLibrary* alLibrary = [[ALAssetsLibrary alloc] init]; [alLibrary assetForURL:[info objectForK ...

  8. VC++ 在使用 CImage 的Draw 输入一个图像时,有时候会造成图像失真严重,解决的方法如下

    VC++  在使用 CImage 的Draw 输入一个图像时,有时候会造成图像失真严重,解决的方法如下 失真主要是由于变形造成的.只要设置一下变形的模式就可以了 ::SetStretchBltMode ...

  9. win8下始终以管理员身份运行vs2012的解决办法

    因为我的windows8不是专业版的,不能通过网上方法修改组策略,所以尝试了下面的方法: 1. 在vs2012快捷方式上,右键选择兼容性疑难解答: 2. 等待检测完,选择故障排除选项页面,选“疑难解答 ...

  10. redis make时 提示 zmalloc.h:50:31: error: jemalloc/jemalloc.h:

    redis安装需要环境必备 gcc 但是若未先安装好gcc,make失败后再次 make 会提示如下错误 zmalloc.h:50:31: error: jemalloc/jemalloc.h: 这时 ...