欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PTA刷題C語言編程順序顛倒輸出實現(xiàn)

 更新時間:2021年09月17日 15:11:02   作者:Booksort  
本篇文章是在刷PTA題目是遇到的一道題,給定一句話,要求將句中所有單詞順序顛倒輸出,本文來帶你解答,有需要的朋友可以借鑒參考下

在這里插入圖片描述

這道題,是我遇見對數(shù)組元素的掌握與使用較為靈活的題目。
下面代碼是我剛接觸C++,剛學(xué)完類的一系列知識,連入門都沒過,對C++的強(qiáng)大還未有多大認(rèn)知,還是極具C語言的風(fēng)格。

我看過一篇用C++完成的比這個簡單多了。

C語言也可以用棧來完成,雖然我有棧的實現(xiàn)函數(shù),但我不愿去搞,就這樣吧,實現(xiàn)也是對自己知識點(diǎn)掌握的加深認(rèn)知。

#include <iostream>
#include <cstring>
int main(void)
{
    int a = 0;
    char ch;
    char arr1[500001];//輸入數(shù)組
    char arr2[500001];//輸出數(shù)組
    while ((ch = getchar()) != '\n')//讀入字符串
    {
        arr1[a++] = ch;
    }
    arr1[a] = '\0';
    int len = strlen(arr1);
    int i = 0;
    int dest = len - 1;//從字符串尾部開始遍歷
    while (dest >= 0)
    {
        if (arr1[dest] == ' ' && arr1[dest + 1] != ' ' && arr1[dest + 1] != '\0' || (dest == 0 && arr1[0] != ' '))//元素為單詞的條件
        {
            if (i != 0)
                arr2[i++] = ' ';
            int last = dest + 1;
            if (dest == 0 && arr1[0] != ' ')//滿足條件,改變last的值
            {
                last = dest;
            }
            while (arr1[last] != ' ' && arr1[last] != '\0')//將單詞拷貝到輸出數(shù)組中
            {
                arr2[i++] = arr1[last++];
            }
        }
        dest--;
    }
    arr2[i] = '\0';//字符串結(jié)束
    std::cout << arr2 << std::endl;
    return 0;
}

盡量理解吧

arr1[dest] == ' ' && arr1[dest + 1] != ' '&&arr1[dest+1]!='\0'

是為了確定每個單詞出現(xiàn)的條件。

(dest == 0 && arr1[0] != ' ')

是為了處理第一個元素就是單詞的情況。

while (arr1[last] != ' ' && arr1[last] != '\0')
            {
                arr2[i++] = arr1[last++];
            }

負(fù)責(zé)將單詞拷貝到輸出數(shù)組上,同時符號要求。

if(i!=0)
  arr2[i++] = ' ';

這個是,當(dāng)?shù)谝粋€單詞拷貝過去后,判斷是否后面還有有單詞,且能進(jìn)這個域,就代表后面還有單詞,要加一個空格的元素。

以上就是PTA刷題C語言編程順序顛倒輸出實現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于PTA刷題C語言倒序的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++實現(xiàn)LeetCode(162.求數(shù)組的局部峰值)

    C++實現(xiàn)LeetCode(162.求數(shù)組的局部峰值)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(162.求數(shù)組的局部峰值),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++實現(xiàn)折半查找

    C++實現(xiàn)折半查找

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)折半查找,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++ 組合 (Composition)的介紹與實例

    C++ 組合 (Composition)的介紹與實例

    這篇文章主要給大家介紹了關(guān)于C++ 組合(Composition)的相關(guān)資料,組合就是將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu),使得用戶對單個對象和組合對象的使用具有一致性。需要的朋友可以參考下
    2021-05-05
  • C語言實現(xiàn)紙牌計算24點(diǎn)小游戲

    C語言實現(xiàn)紙牌計算24點(diǎn)小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)紙牌計算24點(diǎn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C語言選擇、循環(huán)、函數(shù)、數(shù)組與操作符

    C語言選擇、循環(huán)、函數(shù)、數(shù)組與操作符

    這篇文章主要介紹了C語言選擇、循環(huán)、函數(shù)、數(shù)組與操作符,文章基于C語言展開對主題的詳細(xì)介紹,下文內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • VScode上配置 c語言環(huán)境的圖文教程

    VScode上配置 c語言環(huán)境的圖文教程

    這篇文章主要介紹了配置VScode c語言環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • OpenCV實現(xiàn)圖像切割功能

    OpenCV實現(xiàn)圖像切割功能

    這篇文章主要為大家詳細(xì)介紹了OpenCV實現(xiàn)圖像切割功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C++單例設(shè)計模式詳細(xì)講解

    C++單例設(shè)計模式詳細(xì)講解

    單例模式(Singleton Pattern)是最簡單的設(shè)計模式之一。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式,這種模式涉及到一個單一的類,該類負(fù)責(zé)創(chuàng)建自己的對象,同時確保只有單個對象被創(chuàng)建
    2022-06-06
  • C++?11新特性之右值引用使用案例與應(yīng)用場景

    C++?11新特性之右值引用使用案例與應(yīng)用場景

    右值引用和move語義是C++ 11中重要的特性之一,可以提高程序的效率和性能,右值引用是一種新的引用類型,下面這篇文章主要給大家介紹了關(guān)于C++?11新特性之右值引用使用案例與應(yīng)用場景的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • C++超集C++/CLI模塊的基本語法

    C++超集C++/CLI模塊的基本語法

    這篇文章介紹了C++超集C++/CLI模塊的基本語法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07

最新評論