《C和指针》章节后编程练习解答参考——6.1
2015-11-15 16:44
239 查看
《C和指针》——6.1
6.1
题目:
编写一个函数,在一个字符串中进行搜索,查找另一子字符串中出现的字符。
函数原型如下:
char *find_char(char const *source, char const *chars);
要求:
a.不适用任何用于操纵字符串的库函数(如:strcpy strcmp等)
b.函数中不能使用下标引用
解答代码:
注:
1、函数中使用双层循环查询对比,外层用于source数据循环,内层用于子字符串数据循环,逐一进行对比。
2、函数定义参数类型为(char const *)和返回值类型(char *)不一致,不能直接返回,必须进行类型强制转换((char *)(source+j))。
6.1
题目:
编写一个函数,在一个字符串中进行搜索,查找另一子字符串中出现的字符。
函数原型如下:
char *find_char(char const *source, char const *chars);
要求:
a.不适用任何用于操纵字符串的库函数(如:strcpy strcmp等)
b.函数中不能使用下标引用
解答代码:
#include <stdio.h> char *find_char(char const *source, char const *chars) { int i, j; if ((*source != NULL) && (*chars != NULL)) { for (j=0; *(source+j) != '\0'; j++) { for (i=0; *(chars+i) != '\0'; i++) { if (*(source+j) == *(chars+i)) { printf("i = %d\n", j); return ((char *)(source+j)); //注:source类型为(char const *),函数类型为(char *),返回时需要进行强制类型转换 } } } return NULL; } else return NULL; } int main() { char source[] = "ABCDEB"; char chars[] = "EF"; char *p = find_char(source, chars); if (p != NULL) { printf("Find the substr at %d\n", p-source); } else printf("Substr no found!"); getchar(); return 0; }
注:
1、函数中使用双层循环查询对比,外层用于source数据循环,内层用于子字符串数据循环,逐一进行对比。
2、函数定义参数类型为(char const *)和返回值类型(char *)不一致,不能直接返回,必须进行类型强制转换((char *)(source+j))。
相关文章推荐
- 使用phpdocumentor2生成项目文档
- spring源码目录模块的作用
- 视觉处理的相关代码
- Struct对齐
- android studio和eclipse中获取sha1码
- strcpy()、memcpy()、memmove()、memset()的实现
- java 重定向和转发的区别
- 浅析c#内存泄漏
- C++正则表达式处理Boost库使用
- 生成N个随机数,和为1
- Java 二叉树创建遍历
- python 指定路径后批量改名
- PHP经典题:百钱百鸡问题(穷举算法)
- C#复制相关
- Java的抽象类详解
- Java虚拟机工作原理详解
- 动态规划法解决0-1背包问题(C++)
- Adapter(适配器)设计模式
- 书上的代码总觉得有点问题
- 函数 C++ 找数组a中出现次数最多的值