摘要:题目要求写一个函数,将字符串中的空格替换为。新的字符串就是将旧的字符串里面的空格改成。我们需要求出原来字符串的长度,再求出空格的数量,新的字符串的长度就原来字符串的长度加上空格数量的二倍。
题目:要求写一个函数,将字符串中的空格替换为%20。
样例: “abc defgx yz” 转换成 “abc%20defgx%20yz”
根据题目要求,我们可以创建两个字符串,一个字符串用来放原字符串,另一个可以遍历后成新的字符串。新的字符串就是将旧的字符串里面的空格改成%20。
这种算法也比较简单就是单纯的从前面往后面遍历,遇见空格就改成%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++; }}
第二种算法不用创建新的字符串,就是在原来的字符串上修改。我们需要求出原来字符串的长度,再求出空格的数量,新的字符串的长度就原来字符串的长度加上空格数量的二倍。
然后从旧字符串的最后一个先前遍历,遇见空格就倒序输出%20;
具体代码如下:
void repace(char str[]){ int oldnum = 0; //老的数量 int newnum = 0; //新的数量 int old = 0; //老的最后一个字符 int new = 0; //新的最后一个字符 int kong = 0; //空格的数量 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--; }}
第一个整体代码:
#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;}
第二个整体代码:
#includevoid repace(char str[]){ int oldnum = 0; //老的数量 int newnum = 0; //新的数量 int old = 0; //老的最后一个字符 int new = 0; //新的最后一个字符 int kong = 0; //空格的数量 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;}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/118814.html
摘要:方法可接收两个参数,第一个参数是分隔符,即用来分隔字符串的字符,默认是所有的空字符,包括空格换行制表符等。拆分过程会消耗分隔符,所以拆分结果中不包含分隔符。 正如《你真的知道Python的字符串是什么吗?》所写,Python 中字符串是由 Uniocde 编码的字符组成的不可变序列,它具备与其它序列共有的一些操作,例如判断元素是否存在、拼接序列、切片操作、求长度、求最值、求元素的索引位...
摘要:方法可接收两个参数,第一个参数是分隔符,即用来分隔字符串的字符,默认是所有的空字符,包括空格换行制表符等。拆分过程会消耗分隔符,所以拆分结果中不包含分隔符。 正如《你真的知道Python的字符串是什么吗?》所写,Python 中字符串是由 Uniocde 编码的字符组成的不可变序列,它具备与其它序列共有的一些操作,例如判断元素是否存在、拼接序列、切片操作、求长度、求最值、求元素的索引位...
阅读 2842·2021-11-15 11:39
阅读 1819·2021-09-24 09:48
阅读 1062·2021-09-22 15:36
阅读 3585·2021-09-10 11:22
阅读 2995·2021-09-07 09:59
阅读 954·2021-09-03 10:28
阅读 670·2021-09-02 15:15
阅读 2741·2021-08-27 16:24