题目:替换一个字符串如,"We Are Happy."中的空格为"%20",使其字符串变为,"We%20Are%20Happy."。
题目解析:
首先要想到的是要扩大字符串的空间,其要保证原先给与的字符串要能修改有要有扩容的空间。
然后因为一个空格就替换成三个字符,但是包括其空格字符要被替换,其实相当于一个空格多扩容两个空间。先判断有多少空格,然后扩容字符串。
使用两个指针,一个指向原字符串结尾end1,一个指向扩容后的空间的末尾end2,开始把前面的字符串复制到后面。然后判断end1是否遇到空格,如果遇到空格end2就可以的把"%20"放入字符串了。
PS:这里指向字符串的指针,指向的是字符串最后一个元素,不是 "\0",如果字符串多余的空间已经初始化为0了的话,不用考虑"\0",字符复制的时候会覆盖"\0"。
替换空格流程示意图