删除字符串中空格后输出:
一:遇到空格覆盖前移
#include <stdio.h>
#include <string.h>
void shan(char *p);
int main(int argc, const char *argv[])
{
char arr[30]="";
gets(arr);
shan(arr);
puts(arr);
return 0;
}
void shan(char *p)
{
int i=0,j=0,temp=0;
int len=strlen(p);
for(i=0;i<len+1;i++)
{
if(p[i]==' ')
{
for(j=i;j<=len;j++)
{
p[j]='\0';
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
i--;
}
}
}
实现:
二:指针直接覆盖后方补'\0':
#include <stdio.h>
void shan(char *p);
int main(int argc, const char *argv[])
{
char a[20];
gets(a);
shan(a);
puts(a);
return 0;
}
void shan(char *p)
{
char *str=p;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]!=' ')
{
*p=str[i];
p++;
}
}
*p='\0';
}
实现: