欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言字符串替換空格實例詳解

 更新時間:2022年02月18日 10:04:10   作者:愛你哦小豬豬  
這篇文章主要為大家詳細介紹了C語言字符串替換空格實例,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

一、題目描述

請實現(xiàn)一個函數(shù),把字符串 s 中的每個空格替換成"%20"。

示例:

輸入:s = "We are happy."

輸出:"We%20are%20happy."

限制:0 <= s 的長度 <= 10000

二、思路分析

思路

C語言的字符串無法改變大小,所以無法直接在原來的字符串上操作。于是我們先統(tǒng)計空格個數(shù),算出替換后的字符串的大小,并申請一塊新內(nèi)存。(注意要多申請一個byte,放字符串結尾符’\0’)。再次遍歷這個字符串,將空格替換成%20。

算法流程:首先得到字符串s的長度

遍歷這個字符串,統(tǒng)計空格個數(shù)

計算新的字符串需要的空間,并申請一塊新內(nèi)存

遍歷字符串s,如果沒有空格則進行正常賦值。如果碰到空格,則在新字符串對應的三個位置放上%20

三、整體代碼

整體代碼如下

char* replaceSpace(char* s){
    int count = 0;
    int len = 0;
    while(s[len] != '\0'){
        len++;
    }
    
    int i = 0;
    for(i = 0; i < len; i++){
        if(s[i] == ' '){
            count++;
        }
    }
    
    char* str = (char*)malloc(sizeof(char)*(len + 1 + count * 2));

    int j = 0;
    for(i = 0; i < len; i++, j++){
        str[j] = s[i];
        if(s[i] == ' '){
            str[j++] = '%';
            str[j++] = '2';
            str[j] = '0';
        }
    }
    str[j] = '\0';
    
    return str;
}

運行,測試通過

在這里插入圖片描述

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!       

相關文章

  • C++利用鏈棧實現(xiàn)表達式求值

    C++利用鏈棧實現(xiàn)表達式求值

    這篇文章主要為大家詳細介紹了C++利用鏈棧實現(xiàn)表達式求值的相關資料,感興趣的小伙伴們可以參考一下
    2016-05-05
  • C++中設計一個類時的注意事項分享

    C++中設計一個類時的注意事項分享

    這篇文章主要來和大家分享一下C++中,設計一個類要注意哪些東西,這往往也是C++面試時會考到的問題,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-06-06
  • C++求Fib數(shù)列

    C++求Fib數(shù)列

    本文給大家匯總介紹了幾種C++求Fib數(shù)列的方法,有需要的小伙伴們可以來參考下
    2016-02-02
  • C++數(shù)據(jù)結構之單鏈表的實現(xiàn)

    C++數(shù)據(jù)結構之單鏈表的實現(xiàn)

    線性表的鏈式存儲又稱為單鏈表,它是指通過一組任意的存儲單元來存儲線性表中的數(shù)據(jù)元素。本文將用C++實現(xiàn)單鏈表,需要的可以參考一下
    2022-05-05
  • C++排序算法之選擇排序解析

    C++排序算法之選擇排序解析

    這篇文章主要介紹了C++排序算法之選擇排序解析,遍歷數(shù)組選擇找到最大值,記錄最大值下標maxindax,然后將最大值與最后一個值交換, 在剩下的待排序數(shù)組中,重新找到最大值,重復第一步,循環(huán)操作,直至數(shù)組排序完成,需要的朋友可以參考下
    2023-10-10
  • 使用Objective-C獲取IPHONE手機IMSI序列號

    使用Objective-C獲取IPHONE手機IMSI序列號

    這篇文章主要介紹了使用Objective-C獲取IPHONE手機IMSI序列號的方法以及通過IMSI序列號獲取運營商、手機號的方法,非常的實用,有需要的小伙伴可以參考下。
    2015-04-04
  • C++ pair的基本用法總結整理

    C++ pair的基本用法總結整理

    這篇文章主要介紹了C++ pair的基本用法總結整理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • C語言超全面講解函數(shù)的使用方法上

    C語言超全面講解函數(shù)的使用方法上

    函數(shù)是一組一起執(zhí)行一個任務的語句。每個?C?程序都至少有一個函數(shù),即主函數(shù)?main()?,所有簡單的程序都可以定義其他額外的函數(shù),由于篇幅過大,分為兩篇講解,下面開始上篇
    2022-04-04
  • C語言中-a++和-++a運算順序實例解析

    C語言中-a++和-++a運算順序實例解析

    C語言中的a++和++a的區(qū)別在于混合表達式中運算符的處理順序,下面這篇文章主要給大家介紹了關于C語言中-a++和-++a運算順序的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • C語言實現(xiàn)簡單彈跳小球

    C語言實現(xiàn)簡單彈跳小球

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單彈跳小球,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論