摘要:本文主要向大家介绍了C++语言中的默认参数,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。
本文主要向大家介绍了C++语言中的默认参数,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。
// -- left.cpp -- string function with a default argument// -- 程序来源: << C++ Primer Plus >>// -- 编译器: gcc version 4.4.5
#include <iostream>
const int ArSize = 80;char *left(const char *str, int n = 1); //必须在此处定义 n = 1
//C++默认参数需要通过函数原型定义
//对于带参数列表的函数,必须从左到右进行赋值
//即要为默个参数设置默认值,则必须为其右所有参数提供默认值int main(){
using namespace std;
char sample[ArSize];
cout << "Enter a string: " << endl;
cin.get(sample, ArSize);
char *ps = left(sample, 4);
cout << ps << endl;
delete [] ps; //delete old string
ps = left(sample);
cout << ps << endl;
delete [] ps; // delete new string
return 0;
}
char *left(const char *str, int n) //若在此处定义 n = 1 编译器将会报错{
if (n < 0)
{
n = 0;
}
char *ps = new char[n+1]; //此处new分配的空间可以在main函数中delete
int i;
for (i = 0; i < n && str[i]; i++)
{
ps[i] = str[i];
}
while (i <= n)
{
ps[i++] = '\0';
}
return ps;
}
//若在调用left函数的时候传给n的值远大于str所指的字符串的长度,如left("abcd", 99998)//则 char *ps = new char[n+1] 是浪费空间的一种定义方法//但是,若在定义ps之前先用strlen()获得字符串的长度会减慢程序执行的速度,因为要包含cstring或者string.h//一种可行的办法是先测试str所指的字符串的长度// int m = 0;// while (m <= n && str[m] != '\0')// {// m++;// }// char *ps = new char[m+1];//
root@ubuntu:~/cpp# ./left
Enter a string:
something
some
s
本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号