2016-03-05 62 views
-2

我想要一個程序,以下面的格式反轉給定的字符串。如=「這是一個小男孩」 然後我想輸出反向螫如=「博亞SI ishT」與空間相反的空間維護

一個例子 假設如果我輸入字符串 輸入字符串=「如果」 輸出String =「AF我「 請幫忙。 我寫了下面的程序,但沒有按預期工作。

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--; 
} 
+0

這是不是從你的例子要應用到字符串什麼轉型清楚。我認爲你需要澄清一點。 – juanchopanza

回答

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)); 
+0

這將不符合所需的奇怪輸出。否則,這將是一個[這個副本](http://stackoverflow.com/questions/198199/how-do-you-reverse-a-string-in-place-in-c-or-c) – juanchopanza

+0

我的不好,我想解決我的例子,但我很困惑。在他的第一個輸出中,他加入了最後2個字符串(並且不會使它們反轉),而在他的第二個輸出中,他分裂了if字並且不加入它們? wut o.o – Jts

+0

對,我無法弄清楚模式,如果有的話。所以OP需要澄清。 – juanchopanza