//替换字符串中的空格
#include<iostream>
#include<stdlib.h>
using namespace std;
void ReplaceBlank(char *arr, int capacity)//capacity为数组arr的总容量
{
if (arr == NULL || capacity <= 0)
return;
int BlankCount = 0;//空格数
int size = 0;//数组的大小
int idx = 0;
while (arr[idx] != '\0')//计算空格以及数组的大小
{
size++;
if (arr[idx] == ' ')
BlankCount++;
idx++;
}
int newSize = size + BlankCount * 2;//替换空格后数组的大小
if (newSize > capacity)
return;
//从后往前寻找并替换空格
int idx_old = size;//idx_old指向原字符串的末尾arr[size]的位置
int idx_new = newSize;//idx_new指向替换后的字符串的末尾arr[newSize]的位置
while (idx_new>idx_old && idx_old>=0)
{
if (arr[idx_old] != ' ')
{
arr[idx_new] = arr[idx_old];
idx_new--;
}
else
{
arr[idx_new--] = '$';
arr[idx_new--] = '$';
arr[idx_new--] = '$';
}
idx_old--;
}
}
int main()
{
char arr[16] = "abc def ghi";
cout<<sizeof(arr)<<endl;//16
ReplaceBlank(arr, 16);
for (size_t i = 0; i < strlen(arr); ++i)
{
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
替换字符串中的空格
最新推荐文章于 2021-06-10 22:17:50 发布