删除字符串中多余空格--c语言实现
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
删除字符串中多余空格--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;
}
}
}
讲解部分
1. 上⾯这种⽅法只能输出,⽆法获取转换之后的值,想要实现此功能可以新建⼀个数组挨个赋值,很简单实现;
2. 遍历整个数组到'\0'处,不⽤全部遍历,节省时间;
3. ⽤next指向输出位置,⽤point遍历值以及某些操作。