【C++】如何统计一个字符串中某个字符出现的个数?将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 )

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

#include <iostream>
unsigned int c_in_str(const char * str, char ch);
int main()
{
	using namespace std;
	char mmm[15] = "minimum";

	char *wail = "ululate";

	unsigned int ms = c_in_str(mmm, 'm');
	unsigned int us = c_in_str(wail, 'u');

	cout << ms << " 个 m 在  " << mmm << endl;
	cout << us << " 个 u 在" << wail << endl;

	cin.get();
	return 0;
}

//函数建立
unsigned int c_in_str(const char * str, char ch)
{
	unsigned int count = 0;

	while (*str)  //字符串本身自己带有空值字符
	{
		if (*str == ch)
			count++;
		str++;
	}
	return count;
}

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

运行结果:

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值