輸出 We%20are%20happy #include using namespace std; #include //length是字符數(shù)組str的總?cè)萘?void ReplaceBlank(char *str, i..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

把字符串中的每個(gè)空格替換為“%20”

發(fā)布時(shí)間:2020-07-07 08:03:03 來(lái)源:網(wǎng)絡(luò) 閱讀:349 作者:夢(mèng)T醒 欄目:編程語(yǔ)言

把字符串中的每個(gè)空格替換為“%20”舉個(gè)栗子:
We are happy-->輸出"We%20are%20happy"

#include <iostream>
using namespace std;
#include <cstddef>

//length是字符數(shù)組str的總?cè)萘?void ReplaceBlank(char *str, int length)
{
    if (str == nullptr&&length <= 0)
    {
        return;
    }
    int count = 0;
    int i = 0;
    int oldLength = 0;//str數(shù)組中原有長(zhǎng)度
    while (str[i] != '\0')
    {
        if (str[i++] == ' ')
            ++count;
        ++oldLength;
    }
    int newLength = oldLength + count * 2;//加完所有%20之后的長(zhǎng)度
    int index1 = newLength;
    int index2 = oldLength;
    if (newLength>length)
        return;
    while (index1 >= 0 && index2<index1)
    {
        if (str[index2] == ' ')
        {
            str[index1--] = '0';
            str[index1--] = '2';
            str[index1--] = '%';
            --index2;
        }
        else
        {
            str[index1--] = str[index2--];
        }
    }
}

int main()
{
    char str[] = "";
    cin.getline(str,100);//按行輸入
    ReplaceBlank(str, 100);//100
    int i = 0;
    while (str[i] != '\0')
    {
        cout << str[i];
        i++;
    }
    return 0;
}

注意:cin.getline(str,100);

  1. 第一個(gè)參數(shù)是字符指針
  2. 第二個(gè)參數(shù)是輸入數(shù)組最大長(zhǎng)度(’\0’會(huì)占據(jù)最后一位)

3.第三個(gè)參數(shù)是結(jié)束字符(不寫(xiě)默認(rèn)回車(chē)),結(jié)束符不會(huì)被輸入到數(shù)組中

數(shù)組名的值是個(gè)指針常量,也就是數(shù)組第一個(gè)元素的地址。a[300]是一個(gè)數(shù)組,a是一個(gè)指向a[0]
的指針,a+5 是一個(gè)指向a[4]的指針

cin.getline()坑點(diǎn)

1.輸入超過(guò)自己給getline()第二個(gè)參數(shù)設(shè)置的長(zhǎng)度,整個(gè)程序的輸入就終止了
2.cin.getline()讀到第二個(gè)參數(shù)的長(zhǎng)度或第三個(gè)參數(shù)符或者回車(chē)時(shí)結(jié)束輸入,丟棄結(jié)束符。
比如cin.getlin(a,5,’-’);遇到‘-’結(jié)束輸入,‘-’和‘\0’會(huì)被算進(jìn)第二個(gè)參數(shù)5的個(gè)數(shù)里面,但‘-’最終會(huì)被丟出字符串,(就像‘-’憑空消失了一樣,a中不會(huì)有,下一次的cin>>也不會(huì)讀入他,就像cin.getline(a,5);遇到回車(chē)默認(rèn)結(jié)束時(shí),回車(chē)被丟出字符串一樣);

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI