1.1 程序实例
#include <iostream>
using namespace std;
const int ArSize = 40;
char * left(const char * str, int n = 1);
int main()
{
char sample[ArSize];
cout << "Enter a string: " << endl;
cin.get(sample,ArSize);
char *ps = left(sample,4);
cout << ps << endl;
char *pt = left(sample);
cout << pt << endl;
delete [] pt;
delete [] ps;
return 0;
}
char * left(const char * str, int n)
{
if(n < 0)
n = 0;
char * p = new char[n+1];
int i;
for(i = 0; i < n && str[i]; i++)
p[i] = str[i]; // copy character
while(i<=n)
p[i++] = '\0'; //set rest of string to '\0';
return p;
}
1.2 程序说明
默认参数指的是当前函数调用中省略了实参时,自动使用的一个值。
char * left(const char * str, int n = 1);
该原型表示第二个参数如果没有指定的实际参数,则默认为1。
请注意,在编程中,只有原型指定了默认值。
Enter a string:
HELLO!
HELL
H
可以看到以上函数调用,没有输入n值时,n值默认1,故截取的字符串长度为1。
资料参考 C++ Primer Plus (第六版)中文版,仅学习使用