函式的過載與預設引數
阿新 • • 發佈:2021-01-07
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; }