首页 > 其他 > 详细

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

时间:2014-12-30 15:19:02      阅读:405      评论:0      收藏:0      [点我收藏+]

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


#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;  
}  
 

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

技术分享

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

原文:http://blog.csdn.net/wtyvhreal/article/details/42265471

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!