2011-11-19 18 views
4

有沒有辦法交換字符串中的字符位置?例如,如果我有"03/02"我需要得到"02/03"。 任何幫助表示讚賞!C++字符串交換字符的地方

+2

https://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx – FailedDev

+0

如果你的問題是不是兩個答案更深,那麼你需要展開它來告訴我們你真的在問什麼? – Mordachai

回答

16

肯定的:

#include <string> 
#include <algorithm> 

std::string s = "03/02"; 
std::swap(s[1], s[4]); 
+0

謝謝,正是我想要的:) – RnD

+0

@KerrekSB我不認爲你會從這種情況下的移動語義中受益? –

+0

爲什麼在參數上使用move會更普遍? –

2
std::swap(str[1], str[4]); 

1

有。 :)

std::swap(str[i], str[j])

-3

等待,你真的想這樣一個明確的答案?你不在乎字符串是2/3而不是02/03?

#include <string.h> 
#include <iostream> 

bool ReverseString(const char *input) 
{ 
    const char *index = strchr(input, (int) '/'); 
    if(index == NULL) 
     return false; 

    char *result = new char[strlen(input) + 1]; 

    strcpy(result, index + 1); 
    strcat(result, "/"); 
    strncat(result, input, index - input); 

    printf("%s\r\n", result); 
    delete [] result; 

    return true; 
} 

int main(int argc, char **argv) 
{ 
    const char *test = "03/02"; 
    ReverseString(test); 
} 
+0

但它確實回答了我的問題,現在我知道如何解決整個練習:D – RnD

+0

必須是功課。 –

+0

只是它的一部分:) – RnD