具有空间的反向空间保持不变

时间:2016-03-05 17:50:02

标签: c++

我想要一个以下面的格式反转给定字符串的程序。 假设我输入的字符串为="这是一个男孩" 然后我想输出反向刺痛为=" boya si ishT"

再来一个例子 输入字符串="如果是" 输出字符串=" af i" 请帮忙。 我写了下面的程序,但没有按预期工作。

char string[] = "This is a boy\0";
char reverse[100] = {0};
int start = 0;
int len = strlen(string)-1;
int space= 0;
bool flag = false;
int count = 0;
while(len >= 0)
{ 

    if(string[len] == ' '  )
    {
        len--;
        flag = true;

    }

    if(flag && (string[len-1])  == ' ')
    {
        reverse[start] = string[len];

        reverse[++start] = ' ' ;
        len--;
        start++;
        flag = false;
        continue;
    }
    reverse[start] = string[len];
    flag = false;
    start++;
    len--;
}

1 个答案:

答案 0 :(得分:0)

由于您拥有C++代码

#include <string>
#include <algorithm>
#include <iostream>

std::string str = "This is a boy";
std::reverse(str.begin(), str.end());
std::cout << str;

char str[] = "This is a boy";
std::reverse(str, str + strlen(str));