字符串 去掉字母
#include <stdio.h>void main()
{
char a[10],*ch;
int i=1;
gets(a);
for(ch=a;ch<a+5;ch++)
{*ch=*(ch+1);
if(*ch=='a')
i++;
*ch=*(ch+i);}
a[5]='\0';
printf("%s",a);
}
程序错在哪
程序代码:#include <stdio.h>
#include <ctype.h>
void f(char* s,int position)
{
s=s+position; //前进到指定位置
for(;*s!='\0';s++) //字符左移
{
*s=*(s+1);
}
}
int main()
{
char s[10]="11a3b400c";
int i=0;
for(;i<10;i++) //查找每个字符
{
if(isalpha(s[i])) //如果是字母
{
f(s,i); //去掉这个位置字母
i--; //此为重点,因为移动的原因,如果左移的第一个仍是字母,则还要原位再次检查
}
}
printf("%s\n",s);
return 0;
}

程序代码:
# include<stdio.h>
void zuobi(char*ch){//作弊!不修改字符串,只输出结果
for(;*ch!='\0';ch++){
if(*ch>='a'&&*ch<='z'or*ch>='A'&&*ch<='Z')continue;//是字母就跳过
printf("%c",*ch);//不是就输出
}
}
int main()
{
char a[10];
gets(a);
zuobi(a);
printf("\n--\n");
/*----- */
char*ch=a;
char*result=a;
do{
if(not(*ch>='a'and*ch<='z'or*ch>='A'and*ch<='Z')){
*result++=*ch;
}
*ch++;
}while(*ch!='\0');
*result='\0';
printf("%s",a);
return 0;
} 