c语言 为了删除字符串后的所有尾部空格

#include <stdio.h>
#define N 5
int main()
{
int i,a[N],n=N,*p=&a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=N;i>=0;i--)
{
if(p[i]==' ')
n=n-1;
}
for(i=0;i<n;i++);
printf("%d\n",p[i]);
}
为了删除字符串后的所有尾部空格

你的程序我帮你改好了,你看看吧。

完整的程序如下:

#include <stdio.h>

#define N 5

int main(){ 

 int i,n=N;

 char a[N],*p=&a[0];

 for(i=0;i<N;i++)  

  scanf("%c",&a[i]);

 for(i=N-1;i>=0;i--) {  

  if(*(p+i)==' '){ 

   n=n-1;

  }else{

   *(p+i+1)='\0';

   break;

  }

 }

 for(i=0;i<n;i++)

  printf("%c",*(p+i));

 return 0;

}

运行结果:

输入:12空格空格空格

输出:12

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-09
int main()
{
char str[256];
gets(str);
int n = strlen(str);
if(n<=0)
return 0;
char *p = str;
p += n-1; //把p的指针移动到字符串的末尾
while(*(--p)==' ')
{
*p = '\0';
} //指针由末尾向前移动,遇到空格就把空格替换成'\0',也就是字符串的结束符
puts(str);
return 0;
}
第2个回答  2019-11-26
int
main()
{
char
str[256];
gets(str);
int
n
=
strlen(str);
if(n<=0)
return
0;
char
*p
=
str;
p
+=
n-1;
//把p的指针移动到字符串的末尾
while(*(--p)=='
')
{
*p
=
'\0';
}
//指针由末尾向前移动,遇到空格就把空格替换成'\0',也就是字符串的结束符
puts(str);
return
0;
}
第3个回答  2015-06-01
你这样是删不了的,
for(i=N;i>=0;i--)
{
if(p[i]==' ')
n=n-1;
}你只改变了n,但是没有改变数组里面的值,你把而且倒着遍历不太容易,你正着就感觉顺畅多了,只要当前数组值等于空就把后一个的值赋给它,最后别忘了加结束标志。
int i,j=0;
for ( i = 0;p[i]!='\0';i ++ ) {
if(p[i] != ' ')
p[j++] = p[i];
}
p[j] = '\0';
第4个回答  2015-06-01
for(i=N;i>=0;i--)
{
if(p[i]==' ')
n=n-1;
}
==》
for(i=N-1;i>=0;i--)
{
if(a[i]==' ')
a[i] = 0;
else
break;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网