1. 程式人生 > 實用技巧 >函式的過載與預設引數

函式的過載與預設引數

6、小作業:
實現一個函式,該函式的宣告如下:
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>
using namespace std;
bool string_upper_diy(char str[], bool b_odd_pos = true)
{
    int str_len = strlen(str);
    if (b_odd_pos == true)
    {
        for (int i = 0; i < str_len; i++)
        {
            if ((i % 2) == 0)
            {
                str[i] = toupper(str[i]);
            }
            
else { str[i] = tolower(str[i]); } } } else { for (int i = 0; i < str_len; i++) { if ((i % 2) != 0) { str[i] = toupper(str[i]); } else { str[i]
= tolower(str[i]); } } } return b_odd_pos; } int main() { char str[] = "asDbRqfzFDVSf"; string_upper_diy(str, true); cout << str << endl; return 0; }