題目描述
格式化字符串,刪除單詞與單詞,字母與字母,單詞與字母之間的多余空格
例如:
"fdfeasdsaf vsdrwf c dfefa adqdw"
格式化后為:
"fdfeasdsaf vsdrwf c dfefa adqdw"
代碼部分
#include <stdio.h>
void deblank(char s[]);
int main(void)
{
char s[100]; //可以改成動態分配方法,更具普遍性
printf("please input one strings:");
fgets(s,100,stdin);
deblank(s);
return 0;
}
void deblank(char s[])
{
printf("after deblank:");
int point=0,next=0;
while(s[point]!='\0')
{
if(s[point]!=' ')
{
printf("%c",s[point]);
point++;
}
else
{
next=point+1;
while(s[next]==' ')
next++;
printf(" ");
point=next;
}
}
}
講解部分
- 上面這種方法只能輸出,無法獲取轉換之后的值,想要實現此功能可以新建一個數組挨個賦值,很簡單實現;
- 遍歷整個數組到'\0'處,不用全部遍歷,節省時間;
- 用next指向輸出位置,用point遍歷值以及某些操作