【C++】如何统计一个字符串中某个字符出现的个数?将C-风格字符串作为参数的函数

举报
王博Kings 发表于 2020/12/29 23:47:06 2020/12/29
【摘要】 目录 预备的基础知识  将C-风格字符串作为参数的函数 C-风格字符串与常规char数组之间的区别  统计某个字符串中含有字符个数的程序   预备的基础知识  C-风格字符串由一系列字符组成,以空值字符结尾('\0') 将字符串作为参数时意味着传递的是 地址,但可以使用const来禁止对 字符串参数进行修改 将C-风格字符串作为参数的函数 表...

目录

预备的基础知识 

将C-风格字符串作为参数的函数

C-风格字符串与常规char数组之间的区别

 统计某个字符串中含有字符个数的程序


 

预备的基础知识 

C-风格字符串由一系列字符组成,以空值字符结尾('\0')

将字符串作为参数时意味着传递的是 地址,但可以使用const来禁止对 字符串参数进行修改

将C-风格字符串作为参数的函数

表示字符串的方式有三种:

  1. char数组                                                                    char ghost[15] = "galloping"
  2. 用引号括起来的字符串常量                                                                   "galloping"
  3. 被设置为字符串的地址的char指针                            char * str = "galloping"                                         

上述这三种类型其实都是char指针(char * ) 

将字符串作为参数来传递,但 实际传递的是字符串第一个字符的地址。字符串函数原型应将其表示字符串的形参声明为char*类型

C-风格字符串与常规char数组之间的区别

字符串有内置结束字符

包含字符,但不以空值字符结尾的char数组只是数组,不是字符串!

这意味着不必将字符串长度作为参数传递给函数,而函数可以使用  循环来依次 检查字符串中的每个字符,直到遇到结尾的空值字符为止。比如:while ( *str )

 统计某个字符串中含有字符个数的程序


  
  1. #include <iostream>
  2. unsigned int c_in_str(const char * str, char ch);
  3. int main()
  4. {
  5. using namespace std;
  6. char mmm[15] = "minimum";
  7. char *wail = "ululate";
  8. unsigned int ms = c_in_str(mmm, 'm');
  9. unsigned int us = c_in_str(wail, 'u');
  10. cout << ms << " 个 m 在 " << mmm << endl;
  11. cout << us << " 个 u 在" << wail << endl;
  12. cin.get();
  13. return 0;
  14. }
  15. //函数建立
  16. unsigned int c_in_str(const char * str, char ch)
  17. {
  18. unsigned int count = 0;
  19. while (*str) //字符串本身自己带有空值字符
  20. {
  21. if (*str == ch)
  22. count++;
  23. str++;
  24. }
  25. return count;
  26. }

巧妙就巧妙在:while来进行判断,虽然简单,但很实用

运行结果:

文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。

原文链接:kings.blog.csdn.net/article/details/85286794

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。