摘要:題目要求寫一個(gè)函數(shù),將字符串中的空格替換為。新的字符串就是將舊的字符串里面的空格改成。我們需要求出原來(lái)字符串的長(zhǎng)度,再求出空格的數(shù)量,新的字符串的長(zhǎng)度就原來(lái)字符串的長(zhǎng)度加上空格數(shù)量的二倍。
題目:要求寫一個(gè)函數(shù),將字符串中的空格替換為%20。
樣例: “abc defgx yz” 轉(zhuǎn)換成 “abc%20defgx%20yz”
根據(jù)題目要求,我們可以創(chuàng)建兩個(gè)字符串,一個(gè)字符串用來(lái)放原字符串,另一個(gè)可以遍歷后成新的字符串。新的字符串就是將舊的字符串里面的空格改成%20。
這種算法也比較簡(jiǎn)單就是單純的從前面往后面遍歷,遇見空格就改成%20。
具體代碼如下:
void repace(char arr[], char arr1[]){ int i = 0; int j = 0; for (i = 0; arr[i] != "/0"; i++) { if (arr[i] == " ") { arr1[j++] = "%"; arr1[j++] = "2"; arr1[j] = "0"; } else { arr1[j] = arr[i]; } j++; }}
第二種算法不用創(chuàng)建新的字符串,就是在原來(lái)的字符串上修改。我們需要求出原來(lái)字符串的長(zhǎng)度,再求出空格的數(shù)量,新的字符串的長(zhǎng)度就原來(lái)字符串的長(zhǎng)度加上空格數(shù)量的二倍。
然后從舊字符串的最后一個(gè)先前遍歷,遇見空格就倒序輸出%20;
具體代碼如下:
void repace(char str[]){ int oldnum = 0; //老的數(shù)量 int newnum = 0; //新的數(shù)量 int old = 0; //老的最后一個(gè)字符 int new = 0; //新的最后一個(gè)字符 int kong = 0; //空格的數(shù)量 while (str[oldnum] != "/0") { if (str[oldnum] == " ") { kong++; } oldnum++; } newnum = oldnum + kong * 2; old = oldnum -1 ; new = newnum - 1; while (old >= 0) { if (str[old] == " ") { str[new--] = "0"; str[new--] = "2"; str[new] = "%"; } else { str[new] = str[old]; } old--; new--; }}
第一個(gè)整體代碼:
#includevoid repace(char arr[], char arr1[]){ int i; int j = 0; for (i = 0; arr[i] != "/0"; i++) { if (arr[i] == " ") { arr1[j++] = "%"; arr1[j++] = "2"; arr1[j] = "0"; } else { arr1[j] = arr[i]; } j++; }}int main(){ char arr[20] = "abc defgx yz"; char arr1[30] = { 0 }; repace(arr, arr1); printf("%s/n", arr1); return 0;}
第二個(gè)整體代碼:
#includevoid repace(char str[]){ int oldnum = 0; //老的數(shù)量 int newnum = 0; //新的數(shù)量 int old = 0; //老的最后一個(gè)字符 int new = 0; //新的最后一個(gè)字符 int kong = 0; //空格的數(shù)量 while (str[oldnum] != "/0") { if (str[oldnum] == " ") { kong++; } oldnum++; } newnum = oldnum + kong * 2; old = oldnum -1 ; new = newnum - 1; while (old >= 0) { if (str[old] == " ") { str[new--] = "0"; str[new--] = "2"; str[new] = "%"; } else { str[new] = str[old]; } old--; new--; }}int main(){ char arr[20] = "abc defgx yz" ; repace(arr); printf("%s/n", arr); return 0;}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/118814.html
摘要:方法可接收兩個(gè)參數(shù),第一個(gè)參數(shù)是分隔符,即用來(lái)分隔字符串的字符,默認(rèn)是所有的空字符,包括空格換行制表符等。拆分過程會(huì)消耗分隔符,所以拆分結(jié)果中不包含分隔符。 正如《你真的知道Python的字符串是什么嗎?》所寫,Python 中字符串是由 Uniocde 編碼的字符組成的不可變序列,它具備與其它序列共有的一些操作,例如判斷元素是否存在、拼接序列、切片操作、求長(zhǎng)度、求最值、求元素的索引位...
摘要:方法可接收兩個(gè)參數(shù),第一個(gè)參數(shù)是分隔符,即用來(lái)分隔字符串的字符,默認(rèn)是所有的空字符,包括空格換行制表符等。拆分過程會(huì)消耗分隔符,所以拆分結(jié)果中不包含分隔符。 正如《你真的知道Python的字符串是什么嗎?》所寫,Python 中字符串是由 Uniocde 編碼的字符組成的不可變序列,它具備與其它序列共有的一些操作,例如判斷元素是否存在、拼接序列、切片操作、求長(zhǎng)度、求最值、求元素的索引位...
閱讀 2898·2021-11-15 11:39
閱讀 1882·2021-09-24 09:48
閱讀 1070·2021-09-22 15:36
閱讀 3595·2021-09-10 11:22
閱讀 3058·2021-09-07 09:59
閱讀 959·2021-09-03 10:28
閱讀 678·2021-09-02 15:15
閱讀 2747·2021-08-27 16:24