#include <iostream>
using namespace std;
void ReplaceBlank(char string[], int length) //length 为string数组的总容量
{
if (string == NULL || length <= 0)
return ;
int originalLength = 0; //字符串string的实际长度
int numberOfBlank = 0;//字符串中空格数
int i = 0;
while (string[i] != '\0')
{
++originalLength;
if (string[i] == ' ')
++numberOfBlank;
i++;
}
int newLength = originalLength + numberOfBlank*2; //空格被替换之后的长度
if (newLength > length) //超出数组所能允许的长度
return ;
int indexOfOriginal = originalLength;
int indexOfNew = newLength;
while (indexOfOriginal >= 0 && indexOfOriginal < indexOfNew)
{
if (string[indexOfOriginal] == ' ')
{
string[indexOfNew--] = '$';
string[indexOfNew--] = '$';
string[indexOfNew--] = '$';
}
else
{
string[indexOfNew--] = string[indexOfOriginal];
}
--indexOfOriginal;
}
}
void test_ReplaceBlank()
{
char string[100] = "talk is cheap show me the code";
ReplaceBlank(string, 100);
cout << string << endl;
}
int main()
{
test_ReplaceBlank();
}
替换字符串中的空格为$$$。要求时间复杂度为O(N)
最新推荐文章于 2019-02-15 00:05:23 发布
928

被折叠的 条评论
为什么被折叠?



