当前位置:首页 » 编程语言 » c语言怎么删除行末空格
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么删除行末空格

发布时间: 2022-07-07 22:28:56

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

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

完整的程序如下:

#include<stdio.h>

#defineN5

intmain(){

inti,n=N;

chara[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)='';

break;

}

}

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

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

return0;

}

运行结果:

输入:12空格空格空格

输出:12

㈡ C语言输出怎么把最后一位的空格去掉

额,是要换行吗 加一个\n

㈢ C语言,使用指针法,删除字符串的所有尾部空格。

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;
}

㈣ C语言中输出的时候如何去掉最后一个空格

你不要这样输入printf("%d",x);
你应该是循环的吧
举个例子
for

先定义count=0;
for(i=1;i<=n;i++)
{
if(count!=0)
printf("");这里输入空格
然后输printf("%d",x);
count++;

这样就保证了第一个数前面没有空格最后一个数后面也没空格只有数字之间有空格

㈤ c语言如何去掉每行最后的空格

把printf("%d ",m);改成printf(k ? " %d" : "%d",m);。

㈥ C语言程序设计删除空格

遍历字符串,遇到空格,即进行删除。

可以使用第二个字符数组来保存结果,对空格不复制;也可以不使用第二个字符数组,而是采用后续字符覆盖空格字符的方式,达到删除效果。

以效率更高的第二种方法为例,代码如下:

voiddel_space(char*s)
{
char*p=s;
do{
if(*s!='')*p++=*s;
}while(*s++);
}

㈦ c语言输出怎么删除数据末尾的空格

使用substring C很久没用过了,不知道可不可以,反正JAVA和C#用substring就可以去掉字符串最后一个,比如说,定义一个
String s;
把你的结果赋值给s;然后
s.substring(0,s.length-1);
这条代码就可以把字符串最后一个去掉了,
像计算1+.....+100,用for语句来显示时,就可以用substring把最后一个"+"去掉了

㈧ C语言删除字符串末尾的空白符,求每句注释!

#include <stdio.h>/*调用标准输入输出函数*/
#include <stdlib.h>/*调用系统函数*/

#define MAXQUEUE 1001/*定义MAXQUEUE为1001,这里是宏定义么?*///是的就是下面所有遇到MAXQUEUE的地方都换成1001

int advance(int pointer)/*定义函数advance*/
{
if (pointer < MAXQUEUE - 1)/*如果pointer小于最大长度减一*/
return pointer + 1;/*返回参数值+1的值*/
else/*否则返回0,还是否则结束?*///返回0,向main函数返回一个int 型的0
return 0;
}

int main(void)/*入口函数*/
{
char blank[MAXQUEUE];/*定义数组blank[1001],数组中共有1001个字符*///是的
int head, tail;/*定义头,尾*/
int nonspace;/*这个代表什么????*///这个是用来判断空格的,只会在最后回车的时候有用,前面的时候都没有用其实这个东西都可以没有的。下面我给你全部关于这个变量的操作都注释掉了,也没有错。
// int retval;/*这个的作用是什么???*/这个我在你的程序中没有看出有什么用。。。删掉也可以正常运行。。。- -!
int c;/*定义输入的字符变量C*/
head = tail = 0;
while ((c = getchar()) != EOF) //这个地方是输入,然后用回车结束你的本次输入。
{
if (c == '\n') //这个是当遍历到你输入的回车的时候(也就是你的字符串全部扫了一遍了,这是你最后输入的回车)
{
head = tail = 0;//这里的你前面累计起来的末尾多余的空格的数量全部归零
// if (nonspace)
putchar('\n');//这输出最后的换行符,你可以吧这一句也注释掉,然后检验是不是吧后面多余的空格都删掉了
nonspace = 0;
}
else if (c == ' ' || c == '\t') //这里是当读到你输入的是空格的时候就记录下来,如果有多个空格就累加,然后后面输出的时候输出一个空格这个统计的就减一
{
/*if (advance(head) == tail)//这个if语句基本没有用,可以注释掉,多余的
{
putchar(blank[tail]);
tail = advance(tail);
// nonspace = 1;
// retval = EXIT_FAILURE;
}*/

blank[head] = c;
head = advance(head);
}
else//这里是当读到的是字符的时候就输出
{
while (head != tail) //这个就是输出你字符之间的空格
{
putchar(blank[tail]);
tail = advance(tail);
tail=head=0;//这个地方如果你加上这一句,就可以吧你字符之间多余的空格都删掉了,当然,如果你的目的是不删掉之间的空格,只删掉结尾的空格的话就可以不加这句话
}
putchar(c);
// nonspace = 1;
}
}

return 0;//retval;
}

㈨ c语言删除最后一个空格

根据你的意思,写了个完整的程序
#include "stdio.h"
char* trim(char *src)
{int i=0;
if (*(src+i) == ' ')
*(src+i) = '\0';
return src;
}

int main ( void )
{
char *str = "abc ";
printf("str=%s\n", str);
trim(str);
printf("str=%s\n", str);
}
编译通过了啊,看不懂你的问题
#include "stdio.h"
char* trim(char s[])
{int i;
for(i=0;s[i]!='\0';i++)
{if (s[i] == ' ')
s[i] = '\0';
}
return s;
}

int main ( void )
{
char str[10] = "abc ";
printf("str=%s\n", str);
trim(str);
printf("str=%sabc\n", str);
}
这回没了啊,不过改的地方多了一点