加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

华为机试—倒置英文句子中单词的字母顺序

发布时间:2020-12-13 22:37:01 所属栏目:百科 来源:网络整理
导读:输入一个英文句子,包含字母大小写、逗号、句号和空格。把英文句子中的单词的字母顺序倒置。 #include iostream using namespace std; void revese(char* start,char* end) { while(startend) { *start=*start^*end; *end=*start^*end; *start=*start^*end;

输入一个英文句子,包含字母大小写、逗号、句号和空格。把英文句子中的单词的字母顺序倒置。


#include <iostream> 
using namespace std; 
 
void revese(char* start,char* end) 
{
 while(start<end) 
 { 
  *start=*start^*end;
  *end=*start^*end; 
 *start=*start^*end; 
 start++; 
 end--; 
 } 
} 
 

int main() 
{ 
 char* p=new char[1024]; 
 gets(p); 
 int len=strlen(p); 
 int i=0,j=0; 
 
 while(i<len) 
 { 
  //判断字符ch是否为英文字母,若为小写字母,返回2,若为大写字母,返回1。若不是字母,返回0
 if(isalpha(p[i])) 
 { 
   char *start=p+i; 
 j=i+1; 
 while(j<len) 
 { 
    if(isalpha(p[j])) 
 j++; 
 else 
     break; 
 } 
 char *end=p+j-1; 
 revese(start,end); 
 } 
 i=j+1; 
  j++;
 } 

 for(i=0;i<len;i++)
  cout<<p[i]; 

 cout<<endl;
 
 return 0; 
} 
 

测试结果,可能想的不周全,欢迎查漏补缺:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读