目录
预备的基础知识
C-风格字符串由一系列字符组成,以空值字符结尾('\0')
将字符串作为参数时意味着传递的是 地址,但可以使用const来禁止对 字符串参数进行修改
将C-风格字符串作为参数的函数
表示字符串的方式有三种:
- char数组 char ghost[15] = "galloping"
- 用引号括起来的字符串常量 "galloping"
- 被设置为字符串的地址的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来进行判断,虽然简单,但很实用
运行结果: