您的位置:首页 > 其它

函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序

2012-08-02 15:15 591 查看
2005 年11 月金山笔试题。编码完成下面的处理函数。 函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间)

void main()

{

char *str ="abc**de**f";

int len = strlen(str);

char *str1 = (char*)malloc(len+1);

int k=0, i = 0;

whlie( str[i] != '\0' )

{

if(str[i] == '*' )

{

k++; //k个*

}

}

for(i =0 ;i<k ;i++)

{

str1[i] = '*'; //前k个值赋值为*

}

i =0;

while(str[i] != '\0')

{

if( str[i] != '*')

{

str1[k] = str[i];

k++;

}

}

str1[len] = '\0';

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