《Cracking the Coding Interview程式設計師面試金典》----空格替換

塵封的記憶0發表於2017-04-19
時間限制:3秒 空間限制:32768K 熱度指數:3934
本題知識點: 程式設計基礎 陣列 字串
 演算法知識視訊講解

題目描述

請編寫一個方法,將字串中的空格全部替換為“%20”。假定該字串有足夠的空間存放新增的字元,並且知道字串的真實長度(小於等於1000),同時保證字串由大小寫的英文字母組成。

給定一個string iniString 為原始的串,以及串的長度 int len, 返回替換後的string。

測試樣例:
"Mr John Smith”,13
返回:"Mr%20John%20Smith"
”Hello  World”,12

返回:”Hello%20%20World”


解題思路:簡單粗暴,用最簡單的方法,從前到後,不過要引進兩個函式,一個是isalpha(),另外一個是isspace(),isalpha()函式:判斷字元ch是否為英文字母,若為英文字母,返回非0(小寫字母為2,大寫字母為1)。若不是字母,返回0。isspace()函式,判斷輸入字元是否為空格/回車/製表符等 ,如果獲取到的字元是空格/回車/製表符等,返回非0值(即真);否則返回0

#include<iostream>
#include<string.h>
using namespace std;
 string replaceSpace(string iniString,int length)
{
    string str;
    int j = 0;
    for(int i = 0; i < length; ++i)
    {
        if (isalpha(iniString[i]))
            str += iniString[i];
        if (isspace(iniString[i]))
            str += "%20";
    }

    return str;
}
int main()
{
    string str;
    while(getline(cin, str))
    {
         cout << replaceSpace(str,str.length()) <<endl;
    }
    return 0;
}

不懂的可以加我的QQ群:261035036(IT程式設計師面試寶典

群) 歡迎你到來哦,看了博文給點腳印唄,謝謝啦~~


相關文章