- 论坛徽章:
- 0
|
不使用已有的系统调用或函数库,实现c库的函数:strstr()
原帖由 "jxg945" 发表:
$ ./a.out backackabc abc执行
或者./a.out backackabc abcd执行
您看看
可以的,我仔细测试过了
代码就是改改你的,所以我没做什么大改动
估计是我代码没贴好,上面有个字母t不知道怎么就乱了或者不看见了
- #include<stdio.h>;
- #include<unistd.h>;
- char *my_strstr(char *dst, char *src)
- {
- char *a = dst;
- char *b = src;
- do {
- if (*dst == *src) {
- a = dst;
- while ((*dst++) == (*src++)) {
- if (*src == '\0') {
- return a;
- }
- }
- }
- src = b;
- } while (*++dst != '\0');
- return NULL;
- }
- int main(int argc, char **argv)
- {
- char *p;
- char q[100] = "abcddachytdacaab";
- char *c = "Hello, what's your name";
- p = my_strstr(q, "abc");
- printf("[%s]\n%s\n", q, p);
- p = my_strstr(c, "your");
- printf("[%s]\n%s\n", c, p);
- if (argc == 3) {
- p = my_strstr(argv[1], argv[2]);
- printf("[%s]\n", p);
- }
- }
复制代码 |
|