您的位置:首页 > 其它

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

2014-12-30 14:12 405 查看
输入一个英文句子,包含字母大小写、逗号、句号和空格。把英文句子中的单词的字母顺序倒置。

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


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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐