函数的重载与默认参数

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)
    {
        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, false);
    cout << str << endl;
    return 0;
}

 

posted on 2021-01-07 16:13  SakuraQAQ  阅读(71)  评论(0)    收藏  举报

导航