欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

英文语句处理(空格处理)

发布时间:2025/10/17 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 英文语句处理(空格处理) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

要求:去除句子句首句尾的空格,单词间的空格若连续出现多个,只保留一个


注释:两种方法实现了。第一种方法比较水,参照之前写的把句子中的空格转换为“%20”那道题,硬是调用自带的函数,能实现,但感觉略复杂化了,就不多说了

第二种方法,逐个读取字符串里的字符,逐个判断,简单易懂,先去除句首句尾空格,缩小范围,再在这个小范围里逐个判断,实现

#include <stdio.h> #include <string> #include <string.h> #include <iostream>using namespace std;char* formatString1(char* sourceString){int length1 = strlen(sourceString);int length2 = 0;if(length1==0)return '\0';char space[]= " "; char final[256];char *p;int cnt=0;//句首处理p=sourceString;while(*p == ' ')p++;strcpy(sourceString,p);length1 = strlen(sourceString);while(strstr(sourceString,space)!=NULL){p=strstr(sourceString,space);length2=strlen(p);memcpy(&final,sourceString,(length1-length2));final[(length1-length2)]='\0';p++;p++;while( *p == ' '){cnt++;//计空格数p++;}--p;//留一个空格strcat(final,p);length1=length1-(cnt+1);cnt=0;strcpy(sourceString,final);}//句尾处理length1 = strlen(sourceString);p=&sourceString[length1-1];while(*p == ' '){p--;cnt++;}sourceString[length1-cnt]='\0';return sourceString; }char* formatString2(char* sourceString){int length=strlen(sourceString);if(length==0)return "";int start=0,end=length-1;while(sourceString[start] == ' ')//句首start++;while(sourceString[end] == ' ')//句尾end--;char str[256];int pos=0;for(int i=start;i<=end;i++){if(sourceString[i] != ' ')str[pos++]=sourceString[i];else if(sourceString[i] == ' ' && sourceString[i-1] == ' ')//多个空格{str[pos++]=' ';while(sourceString[i] == ' ')i++;i--;//while循环里还要加一次}else if(sourceString[i] == ' ' && sourceString[i+1] != ' ')//单独一个空格str[pos++]=' ';}str[pos]='\0';return str; }int main() {char str[]= " I love meituan ";char *p=formatString2(str);printf("%s//over\r\n",p); }

总结

以上是生活随笔为你收集整理的英文语句处理(空格处理)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。