當前位置:首頁 » 編程語言 » c語言刪除空格字元

c語言刪除空格字元

發布時間: 2022-04-18 17:49:51

1. c語言 輸入一個字元串,刪除中間多餘的空格

可以參考下面的代碼:

#include "stdio.h"

void main()

{

char s[]="I am a teacher!";

int i,j;

for(i=0;s[i];i++)

{

if(s[i]==32&&s[i+1]==32)/*如果字元串中第i和i+1個是空格,就運行if中的語句*/

for(j=i;s[j];j++) {s[j]=s[j+1];i=0;}/*此句是把2個空格換成一個,然後把空格之後的內容前移*/

}

printf("%s ",s);

}

(1)c語言刪除空格字元擴展閱讀:

1、for循環小括弧里第一個「;」號前為一個為不參與循環的單次表達式,其可作為某一變數的初始化賦值語句, 用來給循環控制變數賦初值; 也可用來計算其它與for循環無關但先於循環部分處理的一個表達式。

「;」號之間的條件表達式是一個關系表達式,其為循環的正式開端,當條件表達式成立時執行中間循環體。

2、if語句中的「表達式」可以是關系表達式、邏輯表達式,甚至是數值表達式。其中最直觀、最容易理解的是關系表達式。所謂關系表達式就是兩個數值進行比較的式子。

2. c語言刪除空格鍵

漲姿勢啦, %*c格式符之前見都沒見過,竟然表示跳過一個字元!

按你的代碼邏輯在for循環中,首先讀入一個字元,然後跳過一個字元,所以結果就是讀入的是輸入字元串的第奇數個字元:

對 aglh zhg zghh來說第奇數個字元分別是: a,l,空格,h,空格,g,h,剛好是輸出的幾個字元。

要刪除輸入字元中的空格不應該用%*c, 而應該讀入後判斷讀入的字元是否為空格,如果是空格則繼續,否則才將其賦值到數組內。

#include<stdio.h>

intmain()
{
chara[20],c;
inti=0;
while(i<20)
{
scanf("%c",&c);
if(c=='')
continue;
a[i++]=c;
printf("%c",c);
}
return0;
}

3. c語言 輸入一個字元串,刪除該字元串中的所有空格並輸出處理後的字元串

int main()

{

char s[1024],c[1024];

int len,n=0,i;

char p,q;

p=s;q=c;

printf(「請輸入字元串的長度:」);

scanf("%d",&len);

printf(「請輸入一串字元串:」);

for(i=0;i<len+1;i++)

{

scanf("%c",p+i);

}

for(i=0;i<len+1;i++)

{

if((p+i)>=48&&(p+i)<=57||(p+i)>=97&&(p+i)<=122)

{

(q+n)=(p+i);

n++;

}

}

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

{

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

}

}

c語言編程技巧

1、函數參數

在設計函數時,通常將目的參數放在前面,源參數放在後面。若可能,通過IN、OUT這樣的宏定義來標注參數輸入輸出。

如果參數是指針,且僅作輸入用,則應在類型前加const,以防止該指針在函數體內被意外修改。

2、函數中內存處理

(1)在函數中分配的內存,在函數退出之前要釋放

(2)return語句不可返回指向「棧內存」的指針或者引用,因為該內存在函數體結束時被自動銷毀。

4. C語言 空格刪除

#include<stdio.h>
#include<string.h>
intstrdel(char*s);
intmain()
{
chara[100];
intn;
gets(a);
n=strdel(a);
puts(a);
printf("%d",n);
return0;
}
intstrdel(char*s)
{
inti,j=0,k=0,n;
char*p=s;
n=strlen(s);
for(i=0;i<n;i++)
{
if(*(p+i)=='')
{
j++;
continue;
}
else
{
*(s+k)=*(p+i);
k++;
}
}
*(s+k)='';
returnj;
}

5. C語言完善程序,刪除字元串中的所有空格

*p='\0'或則str[i]='\0'的意思還得從上面的那個循環開始說起,while(*P)何時才為假嗎?必須當p指向字元串的結尾標志才行,也就是p指向了'\0',於是*p=0,於是循環退出,循環裡面就是把空格去掉,這里的去掉的方法是把以前空格的位置用*p對其賦值,*P的值是空格後的字元,例如ab
cd
efg'\0'後來會變為abcdefg為什麼這里沒有'\0',那是因為還沒來得及賦值給它就已經退出循環了,所以必須再循環後面加個'\0'。字元串一定要有'\0'做結尾標志,這個就不用說了

6. C語言程序設計刪除空格

遍歷字元串,遇到空格,即進行刪除。

可以使用第二個字元數組來保存結果,對空格不復制;也可以不使用第二個字元數組,而是採用後續字元覆蓋空格字元的方式,達到刪除效果。

以效率更高的第二種方法為例,代碼如下:

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

7. c語言怎麼刪除多出的空格

從0下標開始,一個字元一個字元地自己向自己拷貝,當拷入一個空格時,將後面的空格跳過去。設置2個初值為0的變數i和j,i用來控制遍歷原字元串數組,j用來記錄新拷入的字元位置,用下面的代碼就可實現!

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
charstr[1000];
inti,j;
gets(str);
for(j=i=0;str[i];i++){
if((str[j++]=str[i])==''){//自己向自己拷貝,直到遇見''
for(i++;str[i]=='';i++);//遇到''跳過後面的''
i--;
}
}
str[j]='';//補個結束符
printf("%s ",str);//打出來看看
return0;
}

8. 用C語言在同一個字元串中刪除空格

刪除一個字元和刪除一個空格一樣,只是判斷不同罷了。至於判斷了是空格之後,只需要將字元串空格下個字元移到空格的位置,後面的字元同時前移一位,以此類推就可以了。
int
i;
int
d=0;
while(a[d]!='/0')

if(a[d]=='
')

for(i=d;a[i]!='/0';i++)
a[i]=a[i+1];

d++;


提個大致思路而已

9. c語言去掉字元串的空格函數trim

c語言去掉字元串的空格函數 void trim(char *s){} 如下:
#include <stdio.h>
void trim(char *s){
int i,L;
L=strlen(s);
for (i=L-1;i>=0;i--) if (s[i]==' ')strcpy(s+i,s+i+1);
}
int main(){
char s[100];
printf("input 1 line string\n");
gets(s);
trim(s);
printf("%s\n",s);
return 0;
}
例如:
input 1 line string
abc 123 XYZ |
輸出:abc123XYZ|

10. C語言刪除字元串中的所有空格

把fun中的*str==*p;改成*str=*p;。

熱點內容
旅遊青蛙安卓版如何下載 發布:2025-01-22 21:52:51 瀏覽:317
歐文5的配置是什麼 發布:2025-01-22 21:30:23 瀏覽:108
日誌存儲資料庫 發布:2025-01-22 21:30:07 瀏覽:474
gulp上傳cdn 發布:2025-01-22 21:27:34 瀏覽:203
emule文件夾 發布:2025-01-22 21:23:23 瀏覽:981
s7e什麼時候推送安卓7 發布:2025-01-22 21:20:59 瀏覽:203
狐狸的清白腳本分析 發布:2025-01-22 21:19:59 瀏覽:182
如何破解仿射密碼 發布:2025-01-22 21:13:53 瀏覽:81
百度視頻存儲 發布:2025-01-22 21:13:11 瀏覽:168
發吧傳媒源碼 發布:2025-01-22 21:07:52 瀏覽:953