關於字符串 “*****AB**C*D*****” 中前綴、後綴和中間 '*' 的處理,ab前綴
一、刪除前綴 '*'

![]()
1 #include<iostream>
2 #include<cstdio>
3
4 using namespace std;
5
6 //主函數
7 int main()
8 {
9 char chr[20],*b,*p; //字符串緩沖區;字符串頭指針;字符串臨時指針
10 int chr_num=0,b_num=0; //輸入的字符串中字符的個數;輸入的字符串中前綴 * 的個數
11 int i;
12
13 //輸入
14 cout<<"Please input a string:"<<endl;
15 gets(chr);
16
17 //統計輸入的字符串中字符的個數
18 p=chr; // p 指向字符串的第一個字符
19 while(*p++)
20 {
21 chr_num++;
22 }
23
24 //統計輸入的字符串中前綴 * 的個數
25 b=chr; // b 指向字符串的第一個字符
26 while(*b++=='*')
27 {
28 b_num++;
29 }
30
31 //刪除輸入的字符串中的前綴 *
32 for(i=0;i<chr_num-b_num;i++)
33 {
34 chr[i]=chr[i+b_num];
35 }
36 chr[i]='\0';
37
38 //輸出
39 cout<<"The result:"<<endl;
40 puts(chr);
41
42 return 0;
43 }
View Code
二、刪除後綴 '*'

![]()
1 #include<iostream>
2 #include<cstdio>
3
4 using namespace std;
5
6 //主函數
7 int main()
8 {
9 char chr[20],*t,*p; //字符串緩沖區;字符串尾指針;字符串臨時指針
10 int chr_num=0,t_num=0; //輸入的字符串中字符的個數;輸入的字符串中後綴 * 的個數
11
12 //輸入
13 cout<<"Please input a string:"<<endl;
14 gets(chr);
15
16 //統計輸入的字符串中字符的個數
17 p=chr; // p 指向字符串的第一個字符
18 while(*p++)
19 {
20 chr_num++;
21 }
22
23 //統計輸入的字符串中後綴 * 的個數
24 t=chr+chr_num-1; // t 指向字符串的最後一個字符
25 while(*t--=='*')
26 {
27 t_num++;
28 }
29
30 //刪除輸入的字符串中的後綴 *
31 chr[chr_num-t_num]='\0';
32
33 //輸出
34 cout<<"The result:"<<endl;
35 puts(chr);
36
37 return 0;
38 }
View Code
三、刪除前綴和後綴 '*'

![]()
1 #include<iostream>
2 #include<cstdio>
3
4 using namespace std;
5
6 //主函數
7 int main()
8 {
9 char chr[20],*b,*t,*p; //字符串緩沖區;字符串頭指針;字符串尾指針;字符串臨時指針
10 int chr_num=0,b_num=0,t_num=0; //輸入的字符串中字符的個數;輸入的字符串中前綴 * 的個數;輸入的字符串中後綴 * 的個數
11 int i;
12
13 //輸入
14 cout<<"Please input a string:"<<endl;
15 gets(chr);
16
17 //統計輸入的字符串中字符的個數
18 p=chr; // p 指向字符串的第一個字符
19 while(*p++)
20 {
21 chr_num++;
22 }
23
24 //統計輸入的字符串中前綴 * 的個數
25 b=chr; // b 指向字符串的第一個字符
26 while(*b++=='*')
27 {
28 b_num++;
29 }
30
31 //統計輸入的字符串中後綴 * 的個數
32 t=chr+chr_num-1; // t 指向字符串的最後一個字符
33 while(*t--=='*')
34 {
35 t_num++;
36 }
37
38 //刪除輸入的字符串中的前綴和後綴 *
39 for(i=0;i<chr_num-b_num-t_num;i++)
40 {
41 chr[i]=chr[i+b_num];
42 }
43 chr[i]='\0';
44
45 //輸出
46 cout<<"The result:"<<endl;
47 puts(chr);
48
49 return 0;
50 }
View Code
四、刪除中間 '*'

![]()
1 #include<iostream>
2 #include<cstdio>
3
4 using namespace std;
5
6 //主函數
7 int main()
8 {
9 char chr[20],*b,*t,*p; //字符串緩沖區;字符串頭指針;字符串尾指針;字符串臨時指針
10 int chr_num=0; //輸入的字符串中字符的個數;輸入的字符串中前綴 * 的個數;輸入的字符串中後綴 * 的個數
11 int i;
12
13 //輸入
14 cout<<"Please input a string:"<<endl;
15 gets(chr);
16
17 //統計輸入的字符串中字符的個數
18 p=chr; // p 指向字符串的第一個字符
19 while(*p++)
20 {
21 chr_num++;
22 }
23
24 //令 b 指向字符串中前綴 * 之後的第一個字符
25 b=chr; // b 指向字符串的第一個字符
26 while(*b++=='*');
27
28 //令 t 指向字符串中後綴 * 之前的第一個字符
29 t=chr+chr_num-1; // t 指向字符串的最後一個字符
30 while(*t--=='*');
31
32 //刪除字符串中間的 *
33 p=b; //令 p 指向字符串中前綴 * 之後的第一個字符
34 while(b<=t)
35 {
36 if(*b!='*')
37 {
38 *p=*b;
39 p++;
40 b++;
41 }
42 else
43 {
44 b++;
45 }
46 }
47 ++t; //令 t 指向字符串中後綴 * 的第一個 *
48 while(*t)
49 {
50 *p=*t;
51 p++;
52 t++;
53 }
54 *p='\0';
55
56 //輸出
57 cout<<"The result:"<<endl;
58 puts(chr);
59
60 return 0;
61 }
View Code
五、把字符串中的前綴 * 移動到字符串的末尾

![]()
1 #include<iostream>
2 #include<cstdio>
3
4 using namespace std;
5
6 //主函數
7 int main()
8 {
9 char chr[20],*b,*p; //字符串緩沖區;字符串頭指針;字符串尾指針;字符串臨時指針
10 int chr_num=0,b_num=0; //輸入的字符串中字符的個數;輸入的字符串中前綴 * 的個數
11 int i;
12
13 //輸入
14 cout<<"Please input a string:"<<endl;
15 gets(chr);
16
17 //統計輸入的字符串中字符的個數
18 p=chr; // p 指向字符串的第一個字符
19 while(*p++)
20 {
21 chr_num++;
22 }
23
24 //統計輸入的字符串中前綴 * 的個數
25 b=chr; // b 指向字符串的第一個字符
26 while(*b++=='*')
27 {
28 b_num++;
29 }
30
31 //把字符串中的前綴 * 移動到字符串的末尾
32 for(i=0;i<chr_num-b_num;i++) //刪除輸入的字符串中的前綴 *
33 {
34 chr[i]=chr[i+b_num];
35 }
36 while(i<chr_num) //在字符串的末尾添加與前綴個數相同的 *
37 {
38 chr[i++]='*';
39 }
40 chr[i]='\0';
41
42 //輸出
43 cout<<"The result:"<<endl;
44 puts(chr);
45
46 return 0;
47 }
View Code
六、把字符串中的後綴 * 移動到字符串的開頭

![]()
1 #include<iostream>
2 #include<cstdio>
3
4 using namespace std;
5
6 //主函數
7 int main()
8 {
9 char chr[20],*b,*t,*p; //字符串緩沖區;字符串頭指針;字符串尾指針;字符串臨時指針
10 int chr_num=0,b_num=0,t_num=0; //輸入的字符串中字符的個數;輸入的字符串中前綴 * 的個數;輸入的字符串中後綴 * 的個數
11 int i;
12
13 //輸入
14 cout<<"Please input a string:"<<endl;
15 gets(chr);
16
17 //統計輸入的字符串中字符的個數
18 p=chr; // p 指向字符串的第一個字符
19 while(*p++)
20 {
21 chr_num++;
22 }
23
24 //統計輸入的字符串中前綴 * 的個數
25 b=chr; // b 指向字符串的第一個字符
26 while(*b++=='*')
27 {
28 b_num++;
29 }
30
31 //統計輸入的字符串中後綴 * 的個數
32 t=chr+chr_num-1; // t 指向字符串的最後一個字符
33 while(*t--=='*')
34 {
35 t_num++;
36 }
37
38 //把字符串中的後綴 * 移動到字符串的開頭
39 for(i=chr_num-t_num-1;i>=0;i--) //刪除輸入的字符串中的後綴 *
40 {
41 chr[i+t_num]=chr[i];
42 }
43 for(i=0;i<t_num;i++) //在字符串的開頭添加與後綴個數相同的 *
44 {
45 chr[i]='*';
46 }
47
48 //輸出
49 cout<<"The result:"<<endl;
50 puts(chr);
51
52 return 0;
53 }
View Code
七、使字符串的前綴 * 不多於 n 個

![]()
1 #include<iostream>
2 #include<cstdio>
3
4 using namespace std;
5
6 //主函數
7 int main()
8 {
9 char chr[20],*b,*p; //字符串緩沖區;字符串頭指針;字符串尾指針;字符串臨時指針
10 int chr_num=0,b_num=0; //輸入的字符串中字符的個數;輸入的字符串中前綴 * 的個數;輸入的字符串中後綴 * 的個數
11 int i,n=5;
12
13 //輸入
14 cout<<"Please input a string:"<<endl;
15 gets(chr);
16
17 //統計輸入的字符串中字符的個數
18 p=chr; // p 指向字符串的第一個字符
19 while(*p++)
20 {
21 chr_num++;
22 }
23
24 //統計輸入的字符串中前綴 * 的個數
25 b=chr; // b 指向字符串的第一個字符
26 while(*b++=='*')
27 {
28 b_num++;
29 }
30
31 //使字符串的前綴 * 不多於 n 個
32 if(b_num>n)
33 {
34 //刪除輸入的字符串中的前綴和後綴 *
35 for(i=0;i<chr_num-b_num;i++)
36 {
37 chr[i+n]=chr[i+b_num];
38 }
39 chr[i+n]='\0';
40 }
41
42 //輸出
43 cout<<"The result:"<<endl;
44 puts(chr);
45
46 return 0;
47 }
View Code
八、使字符串的後綴 * 不多於 n 個

![]()
1 #include<iostream>
2 #include<cstdio>
3
4 using namespace std;
5
6 //主函數
7 int main()
8 {
9 char chr[20],*t,*p; //字符串緩沖區;字符串頭指針;字符串尾指針;字符串臨時指針
10 int chr_num=0,t_num=0; //輸入的字符串中字符的個數;輸入的字符串中前綴 * 的個數;輸入的字符串中後綴 * 的個數
11 int i,n=5;
12
13 //輸入
14 cout<<"Please input a string:"<<endl;
15 gets(chr);
16
17 //統計輸入的字符串中字符的個數
18 p=chr; // p 指向字符串的第一個字符
19 while(*p++)
20 {
21 chr_num++;
22 }
23
24 //統計輸入的字符串中後綴 * 的個數
25 t=chr+chr_num-1; // t 指向字符串的最後一個字符
26 while(*t--=='*')
27 {
28 t_num++;
29 }
30
31 //使字符串的後綴 * 不多於 n 個
32 if(t_num>n)
33 {
34 chr[chr_num-t_num+n]='\0';
35 }
36
37 //輸出
38 cout<<"The result:"<<endl;
39 puts(chr);
40
41 return 0;
42 }
View Code