金鑰格式化 C語言

2021-09-02 13:33:39 字數 1176 閱讀 9320

題目

給定乙個金鑰字串s,只包含字母,數字以及 『-』(破折號)。n 個 『-』 將字串分成了 n+1 組。給定乙個數字 k,重新格式化字串,除了第乙個分組以外,每個分組要包含 k 個字元,第乙個分組至少要包含 1 個字元。兩個分組之間用 『-』(破折號)隔開,並且將所有的小寫字母轉換為大寫字母。

給定非空字串 s 和數字 k,按照上面描述的規則進行格式化。

示例:1.輸入:s = 「5f3z-2e-9-w」, k = 4

輸出:「5f3z-2e9w」

解釋:字串 s 被分成了兩個部分,每部分 4 個字元;

注意,兩個額外的破折號需要刪掉。

2.輸入:s = 「2-5g-3-j」, k = 2

輸出:「2-5g-3j」

解釋:字串s被分成了3個部分,按照前面的規則描述,第一部分的字元可以少於給定的數量,其餘部分皆為 2 個字元。

**分享:

#include #include #include #define n 100

int main()

}m = strlen(array2); //計算數字串組中字元的個數

//將陣列2中的資料逆向儲存到陣列3,方便對其新增『-』

for(i = 0, j = m - 1; j >= 0; j--, i++)//利用迴圈將array2反向儲存至array3

//利用對金鑰k取餘,對陣列3進行新增『-』操作

for(i = 0; i < n; i++)

array3[i] = '-';}}

m = strlen(array3);

//若末元素為破折號,則刪去

if(array3[m - 1] == '-')

//將陣列3逆向輸出,就是對陣列1操作的結果

printf("格式化後的結果是:\n");

for(i = m - 1; i >= 1; i--)//利用ascaii碼進行大小寫變換

else

printf("%c", array3[i]);

}return 0;

}

執行結果:

482 金鑰格式化

給定乙個金鑰字串s,只包含字母,數字以及 破折號 n 個 將字串分成了 n 1 組。給定乙個數字 k,重新格式化字串,除了第乙個分組以外,每個分組要包含 k 個字元,第乙個分組至少要包含 1 個字元。兩個分組之間用 破折號 隔開,並且將所有的小寫字母轉換為大寫字母。給定非空字串 s 和數字 k,按照...

482 金鑰格式化

有乙個金鑰字串 s 只包含字母,數字以及 破折號 其中,n 個 將字串分成了 n 1 組。給你乙個數字 k,請你重新格式化字串,除了第乙個分組以外,每個分組要包含 k 個字元 而第乙個分組中,至少要包含 1 個字元。兩個分組之間需要用 破折號 隔開,並且將所有的小寫字母轉換為大寫字母。給定非空字串 ...

482 金鑰格式化

有乙個金鑰字串 s 只包含字母,數字以及 破折號 其中,n 個 將字串分成了 n 1 組。給你乙個數字 k,請你重新格式化字串,使每個分組恰好包含 k 個字元。特別地,第乙個分組包含的字元個數必須小於等於 k,但至少要包含 1 個字元。兩個分組之間需要用 破折號 隔開,並且將所有的小寫字母轉換為大寫...