當前位置:首頁 » 編程語言 » c語言怎麼刪除行末空格
擴展閱讀
手動擋停車大黃蜂腳本 2022-08-17 03:32:37
什麼牌子的硬碟質量好 2022-08-17 03:30:19
kingston固態硬碟 2022-08-17 03:30:10

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);
}
這回沒了啊,不過改的地方多了一點