标签:
题目:
从指定的某个字符串中判断某个指定字串出现的次数
1 // 题目: char *p = "abcd1111abcd2222abcd3333";
2 // 求abcd出现的次数
3
4 // 分析:
5 // 1.目标串
6 // 2.待查找的字串
7 // 3.返回长度
8
9 #include <stdio.h>
10 #include <string.h>
11
12
13 int Fun(const char *p, const char *p1, int *count)
14 {
15 int rv = 0;
16 int mycount = 0;
17 const char *str = p; // 把参数p(待查找的母串)接过来
18 const char *str1 = p1; // 把参数p1(带查找的子串)接过来
19
20 if(str==NULL || str1==NULL || count==NULL) // 异常处理
21 {
22 rv = -1;
23
24 // 异常发生时的情景!
25 printf("Function Fun() check(str==NULL || str1==NULL || count==NULL) error: %d \n", rv);
26 return rv;
27 }
28 do
29 {
30 str = strstr(str, str1); // 查找子串第一次出现的位置
31 if(str==NULL)
32 {
33 break;
34 }
35 else
36 {
37 mycount++;
38 str = str + strlen(p1); // 跳转指针位置
39 }
40 }
41 while(str != ‘\0‘);
42
43 *count = mycount; // 指针的间接赋值!
44
45 return 0; // return 0;是正常结束
46 }
47 int main()
48 {
49 char *p = "abcd1111abcd2222abcd3333";
50 //char *p = NULL;
51 char *p1 = "abcd";
52 int count = 0;
53 int ret = 0;
54
55 ret = Fun(p, p1, &count);
56
57 if(ret != 0)
58 {
59 printf("Function Fun() error: %d \n", ret);
60 }
61
62 printf("count: %d \n", count);
63
64 return 0;
65 }
总结:
1. 函数内的异常处理需要返回异常出现的函数和当时发生的情景 printf("Function Fun() (......)Error: %d", rv);
2. 指针为函数参数,先判断是否为空 if(p==NULL){...}
3. 记住此函数声明 int Fun(const char *p, const char *p1, int *count)
标签:
原文地址:http://www.cnblogs.com/gossiplee/p/4477168.html