题目:
描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
给定的字符串长度不超过100。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。
示例1
输入:
“We Are Happy”
复制
返回值:
“We%20Are%20Happy”
题解:
class Solution {
public:
string replaceSpace(string s) {
int n=s.length();
string s1[n];
string s2;
for(int i=0;i<n;i++) //s是固定的字符串所以不能别改动
{
s1[i]=s[i];
}
for(int i=0;i<s.length();i++) //替换空格
{
if(s1[i]==" ")
s1[i]="%20";
}
for(int i=0;i<n;i++) //替换后的字符串赋值给s2
{
s2=s2+s1[i];
}
return s2;
}
};
字符串替换空格:请实现一个函数,把字符数组中的每个空格替换成“%20”。
例如输入“we are happy.”,则输出“we%20are%20happy.”。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void replace_blank(char *str)
{
int blank=0;
char *ps=str;
char *new_end=NULL;
char *end=NULL;
while(*ps)
{
if(*ps==' ')
blank++;
ps++;
}
end=ps;
new_end=end+blank*2;
while(end<new_end)
{
if(*end==' ')
{
*new_end-- ='0';
*new_end-- ='2';
*new_end-- ='%';
end--;
}
else
*new_end-- =*end--;
}
}
int main()
{
char arr[20];
gets(arr);
replace_blank(arr);
printf("%s\n",arr);
return 0;
}