c_cpp 将一句话里的单词进行倒置,标点符号不倒置。比如一句话:我来自北京。倒置后变成:beijing。来自我

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 将一句话里的单词进行倒置,标点符号不倒置。比如一句话:我来自北京。倒置后变成:beijing。来自我相关的知识,希望对你有一定的参考价值。

//解析:解决该问题可以分为两步:第一步全盘置换该语句成:.gnijieb morf emoc i。第二步进行部分翻转,如果不是空格,则开始翻转单词。
#include <iostream>
using namespace std;
 
int main ()
{
    int i=0, j=0,begin, end;
    char str[] = "i come from beijing.";
    char temp;
    j = strlen(str) - 1;
    //第一步是进行全盘翻转
    while(j>i)
    {
        temp = str[i];
        str[i++] = str[j];
        str[j--]=temp;
    }
    //第二步进行部分翻转
    i=0;
    while(str[i])
    {
        if(str[i] != ' ')
        {
            begin = i;
            while(str[i] && str[i] != ' ')
                i++;     //找到str[i]为空格符
            i = i - 1;    	//空格符回退一个
            end = i;
        }
        while(end > begin) //部分翻转
        {
            temp = str[begin];
            str[begin++] = str[end];
            str[end--] = temp;
        }
        i++; 
    }
    cout << "string:" << str << endl;
}

以上是关于c_cpp 将一句话里的单词进行倒置,标点符号不倒置。比如一句话:我来自北京。倒置后变成:beijing。来自我的主要内容,如果未能解决你的问题,请参考以下文章

C语言描述,将一句话的单词进行倒置,标点符号不倒置。

腾讯移动客户端笔试记录

倒置字符串

eg_6

C语言实现来实现字符串反转,只有单词顺序反转,组成单词的字母不反转

互联网企业程序题总结