VC驿站学习视频:
C++ 零基础入门到完全独立开发 合集_哔哩哔哩_bilibili
-
函数重载:
int max_num(int a, int b)
{
return a > b ? a : b;
}
float max_num(float a, float b)
{
return a > b ? a : b;
}
函数重载的要求:参数的个数、参数顺序、参数类型至少有一者不同,函数重载与函数返回值类型无关。
-
默认参数:
可以把默认参数放在定义里面,也可以放在声明里面,但只能选其一;
从第一个有默认值的参数开始,后面所有都要有默认值;
调用的时候,非默认值前所有的默认参数都要明确写上NULL;
void get_max_num(int num[], int arr_len, int* max = NULL, int* min = NULL)
{
if (arr_len < 0 || (!max && !min))
{
return;
}
int max_value = num[0];
int min_value = num[0];
for (int i = 0; i < arr_len; i++)
{
if (max_value < num[i]) max_value = num[i];
if (min_value > num[i]) min_value = num[i];
}
if (max) *max = max_value;
if (min) *min = min_value;
}
int main()
{
int num[] = { 0,2,0,0,3,5,0,5,4,10 };
int max_v;
get_max_num(num, 10, &max_v);
int min_v;
get_max_num(num, 10, NULL, &min_v);
cout << max_v << endl;
cout << min_v << endl;
return 0;
}
小作业:
实现一个函数,该函数的声明如下:
bool string_upper_diy(char str[], int str_len, bool b_odd_pos = true);
功能为对字符串指定位置的字符变换为大写。
str 参数为字符串的指针;
str_len 为字符串的长度;
b_odd_pos 为true的时候,就要将 str 字符串中的奇数位置的字符变为大写,同时将非奇数位置的字符变为小写;
b_odd_pos 为false的时候,就要将 str 字符串中的奇数位置的字符变为小写,同时将非奇数位置的字符变为大写;
奇数指的是:1,3,5,7,9,11,13,15,17,19...以此类推;
大家明白了吗?动手试着做一做!
例:
#include<iostream>
#include<string>
using namespace std;
int main()
{
void string_upper_diy(char* pstr, int str_len, bool b_odd_pos = true);
char str[] = "hahahaAAAAAHHH";
string_upper_diy(str, strlen(str),false);
cout << str << endl;
return 0;
}
//变换大小写
void exchange_up_low(char* a)
{
if (*a<97)
{
*a += 32;
}
else
{
*a -= 32;
}
}
void string_upper_diy(char* pstr, int str_len, bool b_odd_pos = true)
{
//所有奇数位
for (int i = 0; i < str_len; i += 2)
{
if (b_odd_pos && *(pstr + i) >= 97)
{
exchange_up_low(pstr + i);
}
if (!b_odd_pos && *(pstr + i) < 97)
{
exchange_up_low(pstr + i);
}
}
//所有偶数位
for (int i = 1; i < str_len; i += 2)
{
if (b_odd_pos && *(pstr + i) < 97)
{
exchange_up_low(pstr + i);
}
if (!b_odd_pos && *(pstr + i) >= 97)
{
exchange_up_low(pstr + i);
}
}
}
本人C++小白,不定时发布学习笔记,如果有诸多错误,还请多多指教,多多海涵。
大家一起加油冲冲冲!!!