您的位置:首页 > 其它

替换空格

2016-01-15 23:18 260 查看
代码如下:
#include<stdio.h>
#include<stdlib.h>

void ReplaceBlank( char* str, int len)
{

if (str == NULL||len <= 0)
{
return;
}

int originalLen = 0;
int numberOfBlank = 0;
int i = 0;

while (str[i]!='\0')
{
++originalLen;
if (str[i] == ' ')
++numberOfBlank;
++i;
}

int newLen = originalLen + numberOfBlank * 2;
if (newLen > len)
{
return;
}
int index0fOriginal = originalLen;
int indexOfNew = newLen;

while (index0fOriginal >= 0 && indexOfNew>index0fOriginal)
{
if (str[index0fOriginal] == ' ')
{
str[indexOfNew--] = '0';//因为要传入‘\0’
str[indexOfNew--] = '2';

str[indexOfNew--] = '%';
}
else
{
str[indexOfNew--] = str[index0fOriginal];
}
--index0fOriginal;
}

}

int main()
{
char str[30] = "we are happy";
ReplaceBlank(str, sizeof(str)/sizeof(str[1]));
printf("%s",str);
system("pause");
return 0;
}
核心代码:
void ReplaceBlank( char* str, int len)
{

if (str == NULL||len <= 0)
{
return;
}

int originalLen = 0;
int numberOfBlank = 0;
int i = 0;

while (str[i]!='\0')
{
++originalLen;
if (str[i] == ' ')
++numberOfBlank;
++i;
}

int newLen = originalLen + numberOfBlank * 2;
if (newLen > len)
{
return;
}
int index0fOriginal = originalLen;
int indexOfNew = newLen;

while (index0fOriginal >= 0 && indexOfNew>index0fOriginal)
{
if (str[index0fOriginal] == ' ')
{
str[indexOfNew--] = '0';//因为要传入‘\0’
str[indexOfNew--] = '2';

str[indexOfNew--] = '%';
}
else
{
str[indexOfNew--] = str[index0fOriginal];
}
--index0fOriginal;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  1月15日