|
发表于 2020-12-10 00:36:28
|
显示全部楼层
下面的程序基本符合你的题意:只包含字母和 * 号,但出现非字母以外的字符,就不能删除最后边的 * 号,其原因还需要时间探讨
- #include<stdio.h>
- int main()
- {
- int i, j = 0, n = 0, count = 0;
- char ch, a[256];
- while ((ch = getchar()) != '\n')
- {
- a[n] = ch;
- n++;
- }
- a[n] = '8'; // 设置字符串结束标志
-
- for (i = 0;i <= n;i++)
- {
- if (a[i] == '*')
- {
- for (j = i + 1;j <= n;j++)
- {
- if (a[j] == '*')
- {
- count++;
- }
- else if (a[j] == '8')
- {
- break;
- }
- else
- count = 0; // *号之后出现非*号
- }
- }
- if (a[j] == '8') // j 已经遍历完数组
- {
- break;
- }
- }
- a[n - count] = '\0';
- printf("%s", a);
- printf("\n");
- }
复制代码 |
|