请实现一个函数,把字符串中的每个空格替换成“%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 = 0;
int count = 0;
len = strlen(arr);
for (i = 0; i < len; i++)
{
if (arr[i] == ‘ ‘)
{
count++;
}
}
i = len;
j = 2 * count + len;
while (i != j != 0)
{
if (arr[i] == ‘ ‘)
{
arr[j--] = ‘0‘;
arr[j--] = ‘2‘;
arr[j--] = ‘%‘;
i--;
}
else
{
arr[j] = arr[i];
j--;
i--;
}
}
len = strlen(arr);
for (i = 0; i < len; i++)
{
printf("%c", arr[i]);
}
printf("\n");
system("pause");
return 0;
}

we%20are%20happy

请按任意键继续. . .

时间: 2024-11-13 02:42:50

请实现一个函数,把字符串中的每个空格替换成“%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”

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 *s

请实现一个函数,将一个字符串中的每个空格替换成“%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)==' '){             

【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