题目1510:替换空格

来源:互联网 发布:人工智能网站 编辑:程序博客网 时间:2024/06/08 11:33
题目1510:替换空格

时间限制:1 秒

内存限制:128 兆

特殊判题:

提交:9360

解决:2401

题目描述:

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

输入:

每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。

输出:

对应每个测试案例,出经过处理后的字符串。

样例输入:
We Are Happy
样例输出:
We%20Are%20Happy

 


The code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// 04ReplaceBlank.cpp : 定义控制台应用程序的入口点。
//
 
#include <stdio.h>
#include <iostream>
usingnamespace std;
 
voidReplaceBlank(charstring[], intlength)
{
    if(string == NULL && length <= 0)
        return;
 
    intoriginalLength = 0;
    intnumberOfBlank = 0;
    inti = 0;
    while(string[i] != '\0')
    {
        ++ originalLength;
 
        if(string[i] == ' ')
            ++ numberOfBlank;
 
        ++ i;
    }
     
    intnewLength = originalLength + numberOfBlank*2;
    if(newLength > length)
        return;
 
    intindexOfOriginal = originalLength;
    intindexOfNew = newLength;
 
    while(indexOfOriginal>=0 && indexOfNew > indexOfOriginal)
    {
        if(string[indexOfOriginal] == ' ')
        {
            string[indexOfNew--] ='0';
            string[indexOfNew--]='2';
            string[indexOfNew--]='%';
 
 
        }
        else
            string[indexOfNew--] = string[indexOfOriginal];
 
        -- indexOfOriginal;
 
 
    }
 
 
 
 
}
 
 
 
intmain()
    constint length = 1000000;
    charstr[length];
    gets(str);
 
    ReplaceBlank(str,length);
    cout<<str<<endl;
 
 
    return0;
}
 
/**************************************************************
    Problem: 1510
    User: yymydm
    Language: C++
    Result: Accepted
    Time:20 ms
    Memory:2424 kb
****************************************************************/

 


error记录:
(一)Compile Error:错误的以为main函数中用到的gets函数是包含在#include<string>的;实际上是包含在#include<stdio.h>

(二)Runtime Error:一开始length=1000,结果无法通过某些测试案例:
后改为1000000才可。显然是因为给字符串数组分配1000大小无法满足某些测试用例需要的内存。


扩展:
最初,在对main()中进行字符串输入处理时,我简单地以为scanf(“%s”,str);或者 cin>>str;
可以实现,结果检查验证后才发现这两中方式在遇到字符串中的空白字符时便会终止读取。
例如输入we are happy , 实际只是读取到we后便终止。

故而采用了gets()实现输入含空白字符的字符串。

gets(字符数组);puts(字符数组)

对一个字符串(以‘\0’结束的字符序列)进行输入、输出操作。
例如:gets(str);
在当我们在键盘上输入we are happy ,按下回车键,实现向字符数组输入一个字符串:we are happy及结束符‘\0’(共13个字符)。


扩展:
最初,在对main()中进行字符串输入处理时,我简单地以为scanf(“%s”,str);或者 cin>>str;
可以实现,结果检查验证后才发现这两中方式在遇到字符串中的空白字符时便会终止读取。
例如输入we are happy , 实际只是读取到we后便终止。

故而采用了gets()实现输入含空白字符的字符串。

gets(字符数组);puts(字符数组)

对一个字符串(以‘\0’结束的字符序列)进行输入、输出操作。
例如:gets(str);
在当我们在键盘上输入we are happy ,按下回车键,实现向字符数组输入一个字符串:we are happy及结束符‘\0’(共13个字符)。
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 汽车标准件生产厂家 检具标准件 机械标准件 模具标准件厂家 标准件手册 标准件展会 标准件商店 弹簧标准件 dme标准件 标准件品牌 标准件价格表 航空标准件 标准件网站 夹具标准件 标准件之都 汽车检具标准件 汽车标准件手册 标准件库 螺丝标准件手册 标准件螺丝价格 中华标准件网 冲模标准件 汽车标准件厂家 标准件生产 高强度标准件厂 标准件厂家直销 标准件生产设备 加工标准件 卡簧标准件 铆钉标准件 标准件国标 模具标准件有哪些 非标准件厂家 五金标准件价格表 常用标准件 不锈钢标准件批发 深沪标准件 采购标准件 齿轮是标准件吗 异形标准件 标准件制造