首页 > 试题广场 >

字符串的调整II

[编程题]字符串的调整II
  • 热度指数:1467 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个字符类型的数组chas[],chas右半区全是空字符,左半区不含有空字符。现在想将左半区的空格字符串替换成“%20”,假设chas右半区足够大,可以满足替换需要的空间,请完成替换函数。

输入描述:
输出一行,代表chas的左半区 。


输出描述:
输出一行,代表替换后的字符串。
示例1

输入

a  b    c

输出

a%20%20b%20%20%20%20c

备注:
时间复杂度,额外空间复杂度
#include <bits/stdc++.h>
using namespace std;

int main(){
    string s;
    getline(cin, s);
    for(int i=0;i<s.length();i++){
        if(s[i]==' ')
            printf("%%20");
        else
            printf("%c", s[i]);
    }
    return 0;
}

发表于 2020-04-26 01:07:32 回复(0)
#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s,res="";
    getline(cin,s);
    for(int i=0;i<s.size();i++)
    {
        if(s[i]==' ')
            res+="%20";
        else
            res+=s[i];
    }
    cout<<res<<endl;
    return 0;
}

发表于 2019-09-14 14:53:07 回复(0)
print(input().replace(' ','%20'))# 一句话python

发表于 2019-10-20 15:03:41 回复(0)
#include <stdio.h>
#include <string.h>

#define MAXLEN 300001

int main(void) {
    char str[MAXLEN];
    int len = 0, spaceNum = 0;
    fgets(str, MAXLEN, stdin);
    str[strlen(str) - 1] = '\0';  /* 将换行符替换为NULL */
    while (str[len] != '\0') {
        if (str[len++] == ' ') {
            spaceNum++;
        }
    }
    int index = len + (spaceNum << 1) - 1;
    for (int i = len - 1; i >= 0; i--) {
        if (str[i] == ' ') {
            str[index--] = '0';
            str[index--] = '2';
            str[index--] = '%';
        } else {
            str[index--] = str[i];
        }
    }
    puts(str);
    return 0;
}

发表于 2022-02-06 19:06:54 回复(0)
s=input()
ans=''
for i in range(len(s)):
    if s[i]==' ':
        ans+='%20'
    else:
        ans+=s[i]
print(ans)

发表于 2021-06-11 08:46:55 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String args[]){
        System.out.println(new Scanner(System.in).nextLine().replace(" ","%20"));
    }
}
一行代码就搞定
发表于 2021-02-15 08:59:49 回复(0)
#include<cstdio>
#include<cstring>
int main(){
    char str[100010];
    while(gets(str)!=NULL){
    int len=strlen(str);
    int k=0;
    char *str1="%20\0";
    for(int i=0;i<len;++i){
        if(str[i]==' '){
            printf("%s",str1);
        }else{
            printf("%c",str[i]);
        }
    }
    printf("\n");
    }
    return 0;
}

编辑于 2020-03-25 18:09:33 回复(0)
#include <iostream>
#include <string>
using namespace std;
int main(){
    string str;
    getline(cin,str);
    for(int i=0;i<str.length();i++){
        if(str[i]==' '){
            str.replace(i,1,"%20");
        }
    }
    cout<<str<<endl;
    return 0;
}

发表于 2020-02-02 14:20:12 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        String str = s.nextLine().replaceAll(" ","%20");
        System.out.println(str);
    }
}
发表于 2020-01-12 19:57:28 回复(0)