实现一个函数,把字符串中的每个空格替换成”%20”

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3
 4 void replaceBlank(char *str);
 5
 6 int main()
 7 {
 8     char str[32];
 9     gets_s(str,32);
10     replaceBlank(str);
11     puts(str);
12     system("pause");
13     return 0;
14 }
15
16 void replaceBlank(char *str)
17 {
18     int old_length = 0;//原字符串的长度
19     int new_length = 0;//新字符串的长度
20     int blank_cnt = 0;//空格的个数
21     int i = 0;//原字符串的下标
22     int j;//新字符串的下标
23
24     if(str[i] == ‘\0‘)
25     {
26         printf("The string is empty!\n");
27         return;
28     }
29     //计算原字符串的长度和空格的个数
30     while(str[i] != ‘\0‘)
31     {
32         ++old_length;
33         if(str[i] == ‘ ‘)
34             ++blank_cnt;
35         ++i;
36     }
37
38     new_length = old_length + 2 * blank_cnt;
39     i = old_length;
40     j = new_length;
41
42     while(i >= 0 && j > i)
43     {
44         if(str[i] == ‘ ‘)
45         {
46             str[j--] = ‘0‘;
47             str[j--] = ‘2‘;
48             str[j--] = ‘%‘;
49         }
50         else
51             str[j--] = str[i];
52         --i;
53     }
54 }
时间: 2024-12-22 05:08:05

实现一个函数,把字符串中的每个空格替换成”%20”的相关文章

替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”

替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”例如输入“we are best ”,则输出we%20are%20 best 此题的实际意义是在网络编程中,如果URL中含有特殊的字符如空格.‘#’等可能导致服务器无法获取正常的参数,我们需要将特殊字符转换成服务器可以识别的字符.准换的规则是“%”加上ASCLL的两位十六制表示,如空格的ASCLL值是32则十六进制为0x20 void replaceBlank(char *src,int length) { int oriLength

替换空格:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

剑指offer替换空格: 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 思路:当我们从前往后进行替换时,每替换一个就要移动后面的所有字符,时间复杂度是0(n2) 我们可以从后向前替换,先统计出所有的空格数space_count,就能得到替换后的长度是length+2*space_count 定义两个指针(可以用下标表示),i指向替换前的最后一个字符下标,j指向替换后的最后一个字符下标

请实现一个函数,把字符串中的每个空格替换成“%20”。

第一种: 思路: 遍历一个字符串,遇到空格向后移动三个char空间,插入%20,直到遍历结束. 时间复杂度O(n^2) 空间复杂度O(1) #include<iostream> #include<stdlib.h> #include<assert.h> using namespace std; void memmove(void* src,void* des,size_t size) { char* d=(char*)des; char* s=(char*)src; i

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy

方法一: public String replaceSpace(StringBuffer str) {         if(str==null){             return null;         }        StringBuilder newStr = new StringBuilder();         for(int i=0;i<str.length();i++){             if(str.charAt(i)==' '){             

请实现一个函数,把字符串中的每个空格替换成“%20”

请实现一个函数,把字符串中的每个空格替换成"%20".例如输入"we are happy.",则输出"we%20are%20happy." #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char arr[] = "we are happy"; int i = 0; int j = 0; int len

【c语言】字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”

// 字符串替换空格:请实现一个函数,把字符串中的每个空格替换成"%20". // 例如输入"we are happy.",则输出"we%20are%20happy." #include <stdio.h> #include <assert.h> char* replace(char* p) { char* ret = p; int num = 0; int oldlen = 0; int newlen = 0; char

C语言:字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。

思路: 从前往后:在原基础上进行替换(当然前提是空间足够),如果从前往后遇到空格就替换,必然会对原来的字符造成覆盖,不可以实现. 因为把空格替换为"%20",每次替换多2个字符,因此可以统计出字符串中空格的总个数,然后新数组大小为  "原数组大小 + 2*空格数 ".从后往前处理:遇到非空格,直接搬到后面,遇到空格替换为"%20". 直到待插入位置指针和原数组为指针重合位置. #include<stdio.h> #include<

面试题4 将一个char数组中的所有空格替换成%20

题目: 将一个字符串 (char数组) 中的所有空格都替换成 "%20". 这里假设数组中是有足够的空余空间的  所以不需要扩展数组 解题思路就是 首先判断数组中到底有多少个空格 这样就可以知道 新的数组有多长 然后反着遍历数组 从最后一个开始  将字符串中的最后一个字符  移动到新的最后一个位置  然后是倒数第二个  一旦遇到空格就将 '0', '2', '%' 三个字符分别插入新的位置 以此类推 代码如下 public void mySolution(char[] str){ in

字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20。

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <assert.h> void repace_black(char *str) { assert(str); char *pstr = str; int black = 0; int len = 0; int newlen = 0; while (*str) { if (*str == ' ') black++; len++; str++; } newlen