我想了好久,毫无头绪……
各位大虾,本来不好意思麻烦大家的,但是这次是迫不得已了。。。麻烦各位大虾给新手指点一二啊,谢谢……不知道下面的错哪里了,算法有错吗?
/*编程3 10%
程序“p3”,实现功能:从键盘输入一个长度小于50的字符串,字符串中含有两个“#”字符,滤去第一个“#”后所有
字母字符,第一个“#”前所有字符不变,
第二个“#”后所有字符也不变。
然后在屏幕上输出(原“#”保留,原字符次序不变),下面是一组输入、输出的样例数据。
例如:
输入:Hi20%3#AB2n#$3k
输出:Hi20%3#2#$3
*/
#include<stdio.h>
#include<string.h>
void main()
{
char c[50];
int n,i,s,t;
printf("n=?\n");
scanf("%s",c);
for(n=0;n<=strlen(c);n++)
c[n]=0; //数据初始化
for(n=0;n<=strlen(c);n++)
if(c[n]=='#')
{
s=n;
break;
}
for(n=s;n<=strlen(c);n++)
if(c[n]=='#')
{
t=n;
break;
}
for(i=0;i<=s;i++) //输出
printf("%c",c[i]);
for(; (i>s && i<t) ;i++)
if(!((c[i]>='A' && c[i]<='Z')||(c[i]>='a' && c[i]<='z')))
printf("%c",c[i]);
for(;i<=strlen(c);i++)
printf("%c",c[i]);
}