删除字符串中多余空格--c语言实现
题目描述
格式化字符串,删除单词与单词,字母与字母,单词与字母之间的多余空格
例如:
"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遍历值以及某些操作