求解移动字符串问题
字符串常量不可改变【问题描述】
设计⼀个函数将字符串中的字符'*'移动到串的前⾯部分,前⾯的⾮'*'字符后移,但不能改变⾮'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为"ab**cd**e*12",处理后为"*****abcde12",函数返回值为5(要求使⽤尽量少的时间和辅助空间)。
【代码】
1 #include<stdio.h>
2int main(){
3char a[100];
4 printf("请输⼊字符串:");
5 scanf("%s",a);
6int t,i;//循环控制变量
7for(i=0;i<100;i++){
8if(a[i]=='*'){
9 t++;
10int d;
11for(d=i-1;d>=0;d--){
12 a[d+1]=a[d];
13 }
14 a[0]='*';
15 }
16 }
17for(i = 0;a[i]!='\0';i++){
18 printf("%c",a[i]);
19 }
20 printf("\n");
21 printf("%d",t);
22return0;
23 }
【⽰例】
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论