當前位置:首頁 » 編程語言 » c語言中用指針刪除空格
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中用指針刪除空格

發布時間: 2022-09-12 15:22:08

c語言程序問題 用指針將字元串中的空格刪除

將p++; 這一句從if子句中移出來,不管if條件是真是假,都要執行它。
#include<stdio.h>
fun(char * str)
{
char * p=str;
int i=0;
while((*p)!=0)
{ if((*p)!=' ')
str[i++]=*p;
p++; //將這一句從if子句中移出來,不管if條件是真是假,都要執行它。

}
str[i]=0;
}

main()
{
char str[100];
printf("Input a string:");
gets(str);
puts(str);
fun(str);
printf("str:%s",str);
return 0;
}

㈡ C語言 輸入一個字元串 利用指針 刪除它的空格字元~

1.兩個指針是根據自己需要來選的,p指針是用來遍歷整個輸入的字元串的,tmp是用來存儲非空格的字元的。你可以不用兩個指針,用tmp保存b的首地址,然後用b[i++]來遍歷,最後輸出用tmp。
2.已經通過*tmp++=*p
;這一句改掉了,tmp是指向b數組的指針。
3.*tmp++=*p
;這是後++,後加加的話意思是先使用該變數當前的值,用完後改變數tmp會自增1,與前加加是反過來的,這個得去看看計算機書了。。。

㈢ C語言怎樣刪除字元串中的空白字元

#include <stdio.h>

int main()

{

char *p="I am Chinese";

char c;

int i = 0;

while((c = p[i++])!=''){

if(c!=' ')

putchar(c);

}

}

(3)c語言中用指針刪除空格擴展閱讀:

字元串的函數應用

1. 連接運算 concat(s1,s2,s3…sn) 相當於s1+s2+s3+…+sn。

例:concat('11','aa')='11aa';

2. 求子串。 Copy(s,I,I) 從字元串s中截取第I個字元開始後的長度為l的子串。

例:(『abdag',2,3)='bda'

3. 刪除子串。過程 Delete(s,I,l) 從字元串s中刪除第I個字元開始後的長度為l的子串。

例:s:='abcde';delete(s,2,3);結果s:='ae'

4. 插入子串。 過程Insert(s1,s2,I) 把s1插入到s2的第I個位置。

例:s:=abc;insert('12',s,2);結果s:='a12bc'

5. 求字元串長度 length(s) 例:length('12abc')=5。

在ASP中 求字元串長度用 len(s)例: len("abc12")=5

6. 搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,則返回s1的第一個字元在s2中的位置,若不是子串,則返回0。

例:pos(『ab','12abcd')=3

網路-字元串

㈣ 關於C語言中利用指針和數組,刪除字元串前面和後面的空格的問題。

你這代碼錯得多了點。

  1. 聲明的a是字元,用scanf("%s",&a);為其輸入一個字元串,能放得下嗎?

  2. u=strlen(a);——a就是一個位元組,用不著測;若這樣測,恐怕編譯都過不了。

  3. while(*p++ !='')這樣的寫法,循環體里的p已是增量後的p了,不知注意了沒有?

㈤ 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語言,使用指針法,刪除字元串的所有尾部空格。

language後面是加了四個空格吧?
p=&s[strlen(s1)-4];//定位到要刪除的四個空格地址
*p='\0' ;//賦值成空字元,strlen計數到此就會停止
直接把這個添加到中間就可以了。
另外puts,gets一類的要少用,真的太不靠譜了。
warning: 『gets』 is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations]

㈦ C語言 初學者用一個指針刪除字元串中的空格。。

這個演算法的思想是,用一個變數統計前面出現了多少個空格,把原字元串的第n+offset的值賦給新字元串的第n個字元。這樣就能達成一次遍歷就能在原字元串上修正的目的了。
#include <stdio.h>
#include <stdlib.h>

int main()
{
char *s=malloc(256);
char *p=s,offset=0;/*offset記錄數據交換的間隔*/
printf("請輸入一個字元串:\n");
fgets(s,256,stdin);
printf("去空格前:\n%s",s);
while(*p!='\0')
{
if(*p==' ')
offset++;
p++;
*(p-offset)=*p;
}
printf("去空格後:\n%s",s);
free(s);
return 0;
}

㈧ C語言程序問題 《用指針將字元串中的空格刪除》

//請運行一下,要看一下結果,檢查有沒有漏刪空格,和多刪字元.
// 此程序能編譯通過,結果正確.

#include<stdio.h>
int fun(char * str)
{
char * p=str;
int i=0;
while( *p != '\0' ){
if( *p == ' ') {
char *A = p ;
while( *A != 0 ){ // 可能有重復的 空格 //可用 memmove,
*A = *(A+1); // 把後面的字元往前移,
++A;
}
*A = '\0';
continue;
}
++ p ;
}
/*str[i]=0;*/
}

int main(int argc, char **argv )
{
char str[100] = "AAA B BB C CC D D D ";
printf("Input a string:");
/*gets(str);*/
puts(str);
fun(str);
printf("\nstr:[%s]\n",str);
return 0;
}