Left-pad


根據新浪微博上的消息,有一位開發者不滿NPM(Node Package Manager)的做法,收回了自己的開源代碼,其中包括一個叫left-pad的模塊,就是這個模塊把javascript里面的React/Babel干癱瘓了。這是個什么樣的模塊?就是在字符串前填充一些東西到一定的長度。例如用*去填充字符串GPLT,使之長度為10,調用left-pad的結果就應該是******GPLT。Node社區曾經對left-pad緊急發布了一個替代,被嚴重吐槽。下面就請你來實現一下這個模塊。
輸入格式:
輸入在第一行給出一個正整數N(≤10​4​​)和一個字符,分別是填充結果字符串的長度和用於填充的字符,中間以1個空格分開。第二行給出原始的非空字符串,以回車結束。
輸出格式:
在一行中輸出結果字符串。
輸入樣例1:

15 _
I love GPLT

輸出樣例1:

____I love GPLT

輸入樣例2:

4 *
this is a sample for cut

輸出樣例2:

 cut

(摘自pintia.cn)

 

 

解答:

 1 #include<iostream>
 2 #include<iomanip>
 3 #include<string>
 4 using namespace std;
 5 int main()
 6 {
 7     char ch;            //輸入的字符
 8     unsigned int len;    //輸入的長度
 9     string str;            //輸入的字符串
10     cin>>len>>ch;
11     getchar();            //防止getline()接收'\n',使用getchar()接收'\n'
12     getline(cin,str);    //輸入一行字符串,包括空格
13     if(len<str.length())    //輸出長度小於字符串長度,則截取字符串
14     {
15         string new_str=str.substr(str.length()-len,str.length());    //string.substr()函數截取字符串的部分
16         cout<<new_str;
17     }
18     else                    //輸出長度大於字符串長度,則使用setw(int )控制輸出長度,使用setfill(char )填充
19     {
20         cout<<setw(len)<<setfill(ch)<<str;
21     }
22     return 0;
23 }

解析:

  見代碼注釋。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM