<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 【我解C語言面試題系列】013 以單詞為單位的翻轉字符串 **以單詞為單位的翻轉字符串** **原題**:Write a function string reverse string word By word (String input) that reverses a string word by word. For instance: "The house is blue" --> "blue is house The" "Zed is dead" -->"dead is Zed"???????? "All-in-one" -->"All-in-one" 在不增加任何輔助數組空間的情況下,對于這個問題我們可以采用的辦法就是: **辦法一**: 1、翻轉整個字符串。 2、翻轉每一個單詞。 **辦法二**: 1、翻轉每一個單詞。 2、翻轉整個字符串。 辦法一和二其實就是一個順序的問題,并不影響算法的時間或空間復雜度。 下面給出代碼:【本程序在DEV C++ 4.9.9.2 下編譯通過】 ~~~ #include <stdio.h> #define IS_PRINT(ch)( (ch) > 0x20 && (ch) < 0x7E ) // except space char * ReverseEveryWord(char *str); char * ReverseWholeString(char * str); char * LR_Reverse(char *left,char *right); int main(void) { ?? char str[] = "Hello????? word! **"; ?? char *p = str; #if 0 ?? ReverseWholeString(str); ?? ReverseEveryWord(str); ?? puts(str); #else ?? ReverseEveryWord(str); ?? ReverseWholeString(str); ?? puts(str); #endif ?? system("pause"); ?? return 0; } char * ReverseEveryWord(char *str) { ?? char *right = str,*left = str; ?? ?? if(str == NULL) ????? return NULL; ????? ?? while( !IS_PRINT(*right) ) ????? right++; ?? while(*right) ?? { ????? left = right; ????? while(IS_PRINT(*right)) ????????? right++; ????? LR_Reverse(left,right-1); ????? while(*right && !IS_PRINT(*right)) ????????? right++; ?? } ?? return str; } char * ReverseWholeString(char * str) { ?? char *p = str; ?? ?? if(str == NULL) ????? return NULL; ?? ?? while(*p)? p++; ?? p--; ?? ?? LR_Reverse(str,p); ?? ?? return str; } char * LR_Reverse(char *left,char *right) { ?? char tt,*ret = left; ?? ?? if(left == NULL || right == NULL) ????? return NULL; ?? ?? while(left < right) ?? { ????? tt = *left; ????? *left++ = *right; ????? *right-- = tt; ?? } ?? return ret; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看