1.一个换一个
函数将字符串中的字符 ‘* ’ 移到字符串的前部分,前面的非 ’ * ’ 字符后移,但不能改变非 ‘* ’ 字符的先后顺序,函数返回串中非 ’ * ’ 字符的数量。(要求尽可能的占用少的时间和辅助空间)。
例如:原始串为 au ** toc ** h**i * ps,处理后为*******autochips ,函数返回9.
void OneReplace(char *arr)
{
int len = 0;//字符串的长度
while(arr[len] != '\0')
{
len++;
}
int i = len;//后面的*
int j = len;//前面查看是否是数字
while(arr[j] != '*')
{
j--;
i--;
}
while(j >= 0)
{
if(arr[j] == '*')
{
j--;
}else
{
arr[i] = arr[j];
arr[j] = '*';
i--;
}
}
}
void Move(char *str)
{
int i = strlen(str);
int j = i;
for(; i > 0; i--)
{
if(str[i] != '*')
{
str[j] = str[i];
j--;
}
}
while(j >= 0)
{
str[j--] = '*';
}
}
2.一个换多个(插入)
实现一个函数,把字符串中的每个空格替
版权声明:本文为weixin_42476945原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。