怎么把字符串去空格里面的/转换成%2F 空格转换成%2B

查看: 2872|回复: 1
Word中有没有办法替换首行缩进的2字符为空格?
阅读权限20
在线时间 小时
因为转换成 Kindle 格式后,Word的首行2字符缩进变成了1空格,所以想替换成两个双字节空格再转换。
但同时又不希望影响居中的章节标题。
有没有可能做到呢?
阅读权限20
在线时间 小时
自己解决了。
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师| 漏洞检测 |
| 隐藏捆绑 |
C语言:字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。
从前往后:在原基础上进行替换(当然前提是空间足够),如果从前往后遇到空格就替换,必然会对原来的字符造成覆盖,不可以实现。 因为把空格替换为%20,每次替换多2个字符,因此可以统计出字符串中空格的总个数,然后新数组大小为 原数组大小 + 2*空格数 。
从前往后:在原基础上进行(当然前提是空间足够),如果从前往后遇到就,必然会对原来的字符造成覆盖,不可以。
因为把替换为&%20&,每次替换多2个字符,因此可以统计出中空格的总个数,然后新数组大小为 &&原数组大小 + 2*空格数 &。从后往前处理:遇到非空格,直接搬到后面,遇到空格替换为&%20&. 直到待插入位置指针和原数组为指针重合位置。
#include&stdio.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 &i++)
if(arr[i] == ' ')
j = 2 * count +
while(i != j && i &= 0)
if(arr[i] == ' ')
arr[j--] = '0';
arr[j--] = '2';
arr[j--] = '%';
arr[j] = arr[i];
len = strlen(arr);
for(i = 0; i&i++)
printf(&%c&,arr[i]);
printf(&\n&);
(责任编辑:幽灵学院)
------分隔线----------------------------
空指针NULL在C语言中,如果一个指针不指向任何数据,我们就...
> 软件开发 > C语言 > 正文C语言中模拟实现strcpy,strstr,st...
#define _CRT_SECURE_NO_WARNINGS 1#includestdio.h#include...
符号:^ 按位异或,规则:相同为零,相异为一。 实际举例:...
今天学习了C语言不定参数,C语言中的不定参数主要靠strarg.h...
问题描述: 两个int(32位)整数m和n的二进制表达中,有多少...
工作日:9:00-21:00
周 六:9:00-18:00
&&扫一扫关注幽灵学院java实现替换空格,谁能优化一下我的代码?请实现一个函数,把字符串中的每个空格替换成%20。例如输入“We&are&happy.”,则输出“We%20are%20happy.”。
实现我已经写出来了,谁有什么相应的优化方案么?要求用java
  public&class&ReplaceSpace
public&StringBuffer&replace(StringBuffer&str)
if&(null&==&str)
System.out.println("字符串为空!");
for&(int&i=0;&i&str.length();&i++)
char&index&=&str.charAt(i);&
if&(index&==&'&')
str.replace(i,&i+1,&"%20");
  public&class&ReplaceSpaceTest
public&static&void&main(String[]&args)
ReplaceSpace&replacespace&=&new&ReplaceSpace();
StringBuffer&str&=&new&StringBuffer("We&are&happy");
replacespace.replace(str);
System.out.println(str);
回答1:  public&StringBuffer&replace(StringBuffer&str)&{
if&(null&==&str)&{
System.out.println("字符串为空!");
int&n&=&str.length();
int&i&=&0;
char&index&=&0;
while&(i&$<$n)&{
index&=&str.charAt(i);
if&(index&==&'&')&{
str.replace(i,&i&+&1,&"%20");
i&+=3; //第次把'&'变成"%20"后会增加2个字符
回答2:当出现多次时,原地将1个字符replace为多个字符的方式明显导致复制次数增加。
遍历复制到一个新串性能更好些,时间O(N)系数是1
maomaomao007
回答3:引用:  Quote: 引用:  当出现多次时,原地将1个字符replace为多个字符的方式明显导致复制次数增加。
遍历复制到一个新串性能更好些,时间O(N)系数是1
增加了字符导致遍历次数增多我确实没有考虑到,但是这并没有减少字符串数组的复制次数,每遇到一个空格还是要复制一个字符串数组,每调用一次replace就复制一次数组,我在想能不能优化一下,减少字符串的复制次数。你可以把每一个字符用链表表示,每遇到一个'&'就更改内容为"%20",这样只需要遍历n次,替换k次(n为字符元素个数,k为空格个数)将一个字符串中的空格全部替换为“%20” - 博客频道 - CSDN.NET
Bryan要加油
分类:ExerciseC++
将char×转换为string可以使用string.assign(char*)
string有push_back和popback
string ReplaceSapces(const string &s)
string retS
if(s.length() == 0)
return retS
int spaceCount = 0;
//统计输入字符串中空格的个数
for(string::const_iterator it = s.begin();it!= s.end();it++)
if((*it) == &#39; &#39;)
spaceCount++;
//确定新的字符串的长度
int newStrLen = s.length()+ 2 * spaceC
char* newStr = new char[newStrLen+1];
newStr[newStrLen] = &#39;\0&#39;;
//从后往前
for(string::const_reverse_iterator rit = s.rbegin();rit != s.rend();rit++)
if((*rit) == &#39; &#39;)
newStr[newStrLen-1] = &#39;0&#39;;
newStr[newStrLen-2] = &#39;2&#39;;
newStr[newStrLen-3] = &#39;%&#39;;
newStrLen-=3;
newStr[newStrLen-1] = *
newStrLen-=1;
retStr.assign(newStr);
return retS
string ReplaceSapces1(const string &s)
string retS
if(s.length() == 0)
return retS
for(string::const_iterator it = s.begin();it!= s.end();it++)
if((*it) == &#39; &#39;)
retStr.push_back(&#39;%&#39;);
retStr.push_back(&#39;2&#39;);
retStr.push_back(&#39;0&#39;);
retStr.push_back(*it);
return retS
排名:第4240名
(66)(245)(63)(33)(144)(2)(19)(19)(9)(7)(3)(30)(28)(17)(61)(30)(37)(30)(40)(24)(4)(6)(8)(27)(6)(0)(3)(1)(1)(20)(8)(1)(3)(40)(3)(54)(7)(3)(3)(9)(1)(4)(12)(0)(2)(2)(2)(2)

我要回帖

更多关于 2b 2f 的文章

 

随机推荐