可以把要删除位置i之后,i+1位置开始的串往前复制一遍。
char
t[]="hello
world";//必须是非const、可写的空间。
int
d=5;//删除第5个位置的空格
strcpy(t+d,t+d+1);
printf("%s",t);
============
helloworld
错误在于你判断了第一个非@字符时就已经输出没有字符@退出循环了所以不会检测@了。改成下面就行了:
#include
#include
int
main()
{
char
sh[100],n=0;
gets(sh);
for(int
i=0;sh[i];i
)
if(sh[i]=='@')
n
;
if(n==0)
printf("没有字符
@\n");
else
printf("有字符
@\n");
}