亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

在這里插入圖片描述

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

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

C語言也可以用棧來完成,雖然我有棧的實現(xiàn)函數(shù),但我不愿去搞,就這樣吧,實現(xià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';//字符串結束
    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++];
            }

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

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

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

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

相關文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    C++單例設計模式詳細講解

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

    C++?11新特性之右值引用使用案例與應用場景

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

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

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

最新評論