码迷,mamicode.com
首页 > 其他好文 > 详细

字符串模型

时间:2015-05-04 22:00:10      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:

 

题目:

从指定的某个字符串中判断某个指定字串出现的次数

 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!