本文目錄一覽:
c語言 字元串去掉空格
// 修改如下:
#include stdio.h
#include stdlib.h
#include string.h
void trimSpace(char *instr, char *outstr){
int i = 0;
int j = 0; // 因為去掉空格後的字元串的字元個數和去掉空格之前不一樣,需要額外增加一個變數用來標記下標。
for (i = 0; i (int)strlen(instr); i++)
{
if ((int)(*(instr+i))==32)
{
continue;
}
else{
*(outstr + j) = *(instr + i);
j++;
}
printf(“%c”, *(outstr+i)); //這個位置可以列印出來去掉空格之後的字元串
}
*(outstr + j) = ‘\0’;
printf(“%s”, *outstr); //這個位置再列印就是null了 求解為什麼 感謝
}
void main(){
char *p1 = ” abcdefgdddd “;
char p2[100] = {0};
trimSpace(p1,p2);
//printf(“%s”, p2);
getchar();
}
C語言-刪除字元串空格
①目標
要刪除字元串中的所有空格,
就要篩選出空格字元。
要篩選,就要對首字元做標記。
要所有空格,就要遍歷。
~
②命令行
#include stdio.h
#include stdlib.h
#include ctype.h
~
③定義函數
void fun(char *str)
{int i=0;
char *p;
/*標記:p=str表示指針指向字元串首地址做標記*/
for(p=str;*p!=’\0′;p++)
/*遍歷:不等於’\0’表示只要字元串不結束,就一直p++。*/
if(*p!=’ ‘)str[i++]=*p;
/*刪除:如果字元串不等於空格,即有內容就存入字元串。等於空格就不儲存,但是指針還是p++繼續後移,跳過儲存空格相當於刪除。*/
}
void fun(char *str)
{int i=0;
char *p=str;
while(*p)
{if(*p!=’ ‘)str[i++]=*p;
p++;}
/*除了for循環遍歷,也可while循環遍歷。注意 p++在if語句後,不然會漏掉第一個字元。*/
str[i]=’\0′;
/*循環完畢要主動添加’\0’結束字元串。*/
~
④主函數
viod main()
{char str[100];
int n;
printf(“input a string:”);
get(str);
puts(str);
/*輸入輸出原字元串*/
fun(str);
/*利用fun函數刪除空格*/
printf(“str:%s\n”,str);
C語言中輸出的時候如何去掉最後一個空格
你不要這樣輸入printf(“%d ”,x);
你應該是循環的吧
舉個例子
for
的
先定義count=0;
for(i=1;i=n;i++)
{
if(count!=0)
printf(" ");這裡輸入空格
然後輸printf(“%d”,x);
count++;
}
這樣就保證了 第一個數前面沒有空格 最後一個數後面也沒空格 只有數字之間有空格
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288893.html