#include<stdio.h>
/*
* 该函数用来实现删除字符串中的所有空格
*a为指向字符串数组的指针
*/
char *delete_space(char *a)
{
// 请在下面添加代码
// ********** Begin **********
int i,j;
for( i = 0; *(a+i) == '\0' ; i++ ){
while( *(a+i) == ' ' ){
j = i;
*(a+j) = *(a+j+1);
j++;
}
}
// ********** End **********
return a;
}
int main()
{
char a[200];
gets(a);
delete_space(a);
puts(a);
return 0;
}
输出并不能删除所有空格,总是会保留一个
修改如下,供参考:
#include<stdio.h>
/*
* 该函数用来实现删除字符串中的所有空格
*a为指向字符串数组的指针
*/
char *delete_space(char *a)
{
//?请在下面添加代码
// **********?Begin?**********?
int i,j;
for( i = 0 ,j = 0; *(a+i) != '\0' ; i++ ){
//for( i = 0; *(a+i) == '\0' ; i++ )
if(*(a+i) == ' ') continue;
*(a+j) = *(a+i);
j++;
// while( *(a+i) == ' ' ) {
// j = i;
// *(a+j) = *(a+j+1);
// j++;
//}
}
*(a+j) = '\0';
//?********** ?End? **********
return a;
}
int main()
{
char a[200];
gets(a);
delete_space(a);
puts(a);
return 0;
}
char *delete_space(char *a)
{
// 请在下面添加代码
// ********** Begin **********
char *p, *q = a;
while (*q)
{
if (*q == ' ')
{
p = q--;
while (*p)
{
*p = *(p + 1);
p++;
}
}
q++;
}
// ********** End **********
return a;
}