Aaron学习笔记
少壮不努力,长大没饭吃!
posts - 4, comments - 13, trackbacks - 0, articles - 37
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔档案
(4)
2009年5月 (2)
2009年4月 (2)
文章分类
(36)
C++学习(1)
C和指针(6)
JAVA基础(5)
Linux编程(7)
日常练习(10)
算法设计与分析(7)
文章档案
(37)
2011年7月 (1)
2011年6月 (3)
2011年5月 (1)
2011年4月 (2)
2010年9月 (1)
2010年8月 (4)
2010年7月 (1)
2009年9月 (2)
2009年8月 (1)
2009年7月 (2)
2009年5月 (2)
2009年4月 (3)
2009年3月 (10)
2009年1月 (4)
常去的网站
CSDN论坛
网易论坛
积分与排名
积分 - 66149
排名 - 341
最新随笔
1. 怎么说呢,哎
2. 郁闷,今天没有进展
3. 早起签个名
4. 每天都获得一点小进步
最新评论
1. re: 判断一个IP地址是不是合法
评论内容较长,点击标题查看
--yueyongqiang
2. re: Java中的内部类
很不错,学习了!
--clytze
3. re: 删除字符串中的一部分
没人发现这代码是不对的吗???
--tian
4. re: 字符串查找
不是很理解上方代码,貌似代码要求是查找字符串 但是上面只实现了对字符串的首字符进行匹配的工作
--lost-angel
5. re: 判断一个IP地址是不是合法
109.66.2.1
--fiona
阅读排行榜
1. 怎么说呢,哎(381)
2. 每天都获得一点小进步(349)
3. 郁闷,今天没有进展(331)
4. 早起签个名(318)
评论排行榜
1. 怎么说呢,哎(1)
2. 每天都获得一点小进步(0)
3. 早起签个名(0)
4. 郁闷,今天没有进展(0)
字符串查找
Posted on 2009-01-18 11:57
赞劲小子
阅读(2949)
评论(2)
编辑
收藏
引用
所属分类:
C和指针
近日看《C与指针》,讲习题中自己认为以前不懂的,或者不会的都写了下来,供大家参考。
请编写一个函数,它在一个字符串中进行搜索,查找所有在一个给定字符集合中出现的字符。以下是要求:
1.这个函数的原型如下:char *find(char const *source, char const *chars);
2.它的基本想法是查找source字符串中匹配chars字符串中任何字符的第一个字符。
3.函数然后返回一个指向source中第1个匹配所找到的位置的指针。如果source中的所有字符均不匹配
chars中的任何字符,
4.函数就返回一个NULL指针。如果任何一个参数为NULL,或任何一个参数所指向的字符串为空,函数也返
回一个NULL指针。
5.举个例子,假定source指向ABCDEF。如果chars指向XYZ、JUEY或QQQQ,函数就返回一个NULL指针。如
果chars指向XRCQEF,函数就返回一个指向source中C字符的指针。
6.参数所指向的字符串是绝不会被修改的。
a.你不应该使用任何用于操纵字符串的库函数(如strcpy,strcmp,index等)。
b.函数中的任何地方都不应该使用下标引用。
#include
<
stdio.h
>
#define
MAX 50
char
*
find_char(
const
char
*
source,
const
char
*
chars);
void
main()
{
char
name[MAX];
gets(name);
char
*
ptr;
ptr
=
find_char(name,
"
aod
"
);
if
(ptr
!=
NULL)
puts(ptr);
else
printf(
"
for NULL\n
"
);
}
char
*
find_char(
const
char
*
source,
const
char
*
chars)
{
const
char
*
temp
=
NULL;
if
(source
==
NULL
||
chars
==
NULL
||
source
==
""
||
chars
==
""
)
return
NULL;
while
(
*
source
!=
'
\0
'
)
{
/**/
/*
**记住temp要在这里申明,因为source的一个字符跟source中的每一个字符匹配一次后
**temp就到了chars的末尾了,所以要将temp还回去。
*/
temp
=
chars;
while
(
*
temp
!=
'
\0
'
)
if
(
*
temp
==
*
source)
return
(
char
*
)source;
else
temp
++
;
source
++
;
}
return
NULL;
}
Feedback
#
re: 字符串查找
回复
更多评论
2011-07-30 11:13 by
lurker
这么写更清晰一些。一般平时工作时很少用while的,而且一定要加大括号,哪怕只有一行。
for (; * source!= '\0’; source++)
{
for (temp = chars; *temp != '\0' ; temp++)
{
if (*temp == *source)
{
return (char *) source;
}
}
}
#
re: 字符串查找
回复
更多评论
2012-08-20 14:14 by
lost-angel
不是很理解上方代码,貌似代码要求是查找字符串 但是上面只实现了对字符串的首字符进行匹配的工作
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
匹配字符串中的花括号
保存输入的最长的数组(要判断输入是不是空行的)
求阶乘n!和 Fibnoacci函数的递归与非递归
删除字符串中的一部分
字符串反序函数
字符串查找
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © 赞劲小子