问题描述:
删除一个字符串中所有的a,并且赋值所有的b,字符串足够大!
关键是倒着复制字符串数组!
/*
删除一个字符串所有的a,并且复制所有的b。注:数组足够大!
*/
#include<stdio.h>
#include<stdlib.h>
void Function(char *str)
{
if (str == NULL)
return;
int n = 0, numb = 0;
for (int i = 0; str[i] != '\0'; ++i)
{
if (str[i] != 'a')
str[n++] = str[i];//统计字符串中非a字符的数量,并删除a字符
if (str[i] == 'b')
numb++;//统计字符串中b字符的数量
}
//倒着复制
int newLength = numb + n;
str[newLength] = 0;
for (int i = newLength - 1, j = n - 1; j >= 0; --j)
{
str[i--] = str[j];
if (str[j] == 'b')
str[i--] = 'b';
}
}
int main()
{
char str[100] = "abcdabcaabbccdaabbccd";
Function(str);
printf("str = %s\n", str);
printf("%s %s\n", __DATE__, __TIME__);
system("pause");
return 0;
}
运行结果:
str = bbcdbbcbbbbccdbbbbccd
Aug 25 2016 15:06:56
请按任意键继续. . .
与该题目思想一致的相关题目: