一、将C风格字符串作为参数传递给函数,则表示字符串的方式有三种
1、char数组;
2、用引号括起的字符串常量;
3、被设置为字符串的地址的char指针;
现在有一个函数,用来统计某个字符在一个字符串中出现的次数。
unsigned int c_int_str(const char *str, char ch)
{
while(*str)
{
if(*str == ch)//quit when *str is '\0'
{
count++;
}
str++; //move pointer to next char
}
return count;
}
该函数本身演示了处理字符串中字符的标准方式:
while(*str)
{
statements;
str++;
}
str最初指向字符串的第一个字符,因此*str表示的是第一个字符。例如,第一次调用该函数后,*str的值将为m——“minimum”的第一个字符。只要字符不为空字符‘\0’,*str就为非零值,因此循环将继续。在每轮循环的结尾处,表达式str++将指针增加一个字节,使之指向字符串的下一个字符。最终,str将指向结尾的空值字符,使得*str等于0——空值字符的数字编码,从而结束循环。
二、返回C风格字符串的函数
以下函数能很好体现:
#include <iostream>
using namespace std;
char* func(char ch, int n)
{
char *ptr = new char[n + 1];
ptr[n] = '\0';
while(n-- > 0)
{
ptr[n] = ch;
}
return ptr;
}
int main(void)
{
char ch;
int n;
cin>>ch;
cin>>n;
char *ps = func(ch, n);
cout<<ps<<endl;
delete []ps;
return 0;
}