1. 程式人生 > >【C實現】給出一個字串,要求將其按照單詞順序進行反轉

【C實現】給出一個字串,要求將其按照單詞順序進行反轉

題目:給出一個字串,要求將其按照單詞順序進行反轉,比如如果是”the sky is blue”,那麼反轉之後的結果就是”blue is sky the”。

問題分析:

  • 每個單詞長度不一致
  • 空格需要特殊處理

使用C語言實現:

void swap (char chars[], int p, int q);
void reverse (char chars[], int start, int end);
void reverseWords(char strings[]);

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        char
string[] = "the sky is blue"; reverseWords(string); } return 0; } void swap (char chars[], int p, int q) { char temp = chars[p]; chars[p] = chars[q]; chars[q] = temp; } void reverse (char chars[], int start, int end) { NSLog(@"%s",chars); int s = start; int e = end; while
(s < e) { swap(chars, s, e); s += 1; e -= 1; } NSLog(@"%s",chars); } void reverseWords(char strings[]) { if ((int)strlen(strings) == 0) { return; } int start = 0, len = (int)strlen(strings); reverse(strings, 0, len - 1); for (int i = 0 ; i < len; i++) { if
((i == len - 1) || (strings[i + 1] == ' ')) { reverse(strings, start, i); start = i + 2; } } NSLog(@"%s",strings); }

控制檯列印:2018-08-14 16:04:22.815076+0800 演算法[6268:668783] blue is sky the

相關推薦

C實現一個字串要求按照單詞順序進行反轉

題目:給出一個字串,要求將其按照單詞順序進行反轉,比如如果是”the sky is blue”,那麼反轉之後的結果就是”blue is sky the”。 問題分析: 每個單詞長度不一致 空格需要

c語言三角形的三邊長求三角形面積

設三角形三邊長為a、b、c,並滿足約束條件三邊之和大於第三邊,面積為Area 則: 其中 C語言程式碼: #include <stdio.h> #include <math.h> int main() {     double a

C語言輸入三個字串由小到大排序輸出。

仔細觀察下面程式: #include <stdio.h> #include <string.h> void swap(char *p1,char *p2) { char *ret = p1; p1 = p2;

c語言一個不多於五位的正整數: 1.求它是幾位數 2.分別輸出每一位數字 3.逆序輸出各位數字

#include<stdio.h> #include<math.h> //求出它是幾位數 int Count(int n) { int tmp = 0; while (n != 0) { tmp++; n /= 10;

c語言一個不多於5位的正整數要求: 1、求它是幾位數 2、分別輸出每一位數字 3、按逆序輸出各位數字

// 給一個不多於5位的正整數,要求: // 1、求出它是幾位數 // 2、分別輸出每一位數字 // 3、按逆序輸出各位數字 #include <stdio.h> #include <math.h> int main() { int a,b,c

hihocoder 1388區間DPA Game一個數列兩人每次從數列的頭尾取數小ho 先取小hi每次都採取最優策略問小ho最終能取得的數的總和最大是多少

描述 Little Hi and Little Ho are playing a game. There is an integer array in front of them. They take turns (Little Ho goes first) to select a number from

C#實現根據的相對地址獲取網站絕對地址的方法

nor 區別 ike orm add index div path 鏈接 本文實例講述了C#實現根據給出的相對地址獲取網站絕對地址的方法。分享給大家供大家參考。具體分析如下: 這段C#代碼在ASP.NET的項目中可以根據給定的相對地址獲取絕對訪問地址,例如:給出 /cod

C 兩個連結串列中資料節點的資料域為一個字母 其中L1包含L2在L1中找與L2相等的字串逆置

前面相關操作在這呢,這個函式依託於此 //結構體 typedef struct Node { ElementType data; struct Node * next; } LNode, * LinkNode; //兩個連結串列中資料節點的資料域為一個字母 http

C++實現第k大元素 時間複雜度為O(n)空間複雜度為O(1)

解題思路: 二基準快速排序,在排序時判斷每次找到的標記點下標 p 與 n-k 的大小,若小於n-k,則只需在p的右側繼續遞迴,若大於 p 則只需在p 的左側遞迴,直至 p 與 n-k 相等 vs可執行程式碼 #include<ctime> #includ

C基礎空字元'\0'與字串

空字元'\0' 空字元即NUL位元組,是一個ASCII值為0的控制字元,在程式程式碼中通常以轉義序列'\0'表示,在C語言中,空字元非常重要,主要體現在字串中。 字串 字串就是一串零個或多個字元,並且以位模式為全0的NUL位元組即空字元('\0')結尾。C語言中字串沒有顯

C++實現五大常用演算法之一:分治演算法(例項:漢諾塔)

求解思想:大而化小 1、問題拆分成子問題 2、對子問題求解 在漢諾塔遊戲中,有三個分別命名為A、B、C得塔座,幾個大小各不相同,從小到大一次編號得圓盤,每個原盤中間有一個小孔。最初,所有得圓盤都在A塔座上,其中最大得圓盤在最下面,然後是第二大,以此類推. 先上程式

C++實現基本排序演算法 插入排序——歸併排序——快速排序——堆排序

/* 排序總結:(基於100w隨機數,有序數、重複數測試) 1、插入排序適合近乎有序的序列 2、歸併排序優化:(優化前       120S) 1)資料小於15時採用插入排序 10S 2)避免頻繁動態申請記憶體 memcpy(dest,src,sizeof(int)*len)

C++實現LightHouse

燈塔(LightHouse) 描述   海上有許多燈塔,為過路船隻照明。   (圖一)   如圖一所示,每個燈塔都配有一盞探照燈,照亮其東北、西南兩個對頂的直角區域。探照燈的功率之大,足以覆蓋任何距離。燈塔本身是如此之小,可以假定它們不會彼此遮擋。   (圖

C語言從控制檯輸入一個字串然後賦值變數

一、常規程式碼: char name[5]; printf("Name: "); scanf("%s", name); printf("Name = %s\n", name); 測試: 1、輸入“abc”, 輸出“abc”,正確 2、輸入“ab c”, 輸出“ab”, 出

c語言動態開闢一個二維陣列

// 動態開闢一個二維陣列 #include <stdio.h> #include <stdlib.h> int main() { int i = 0; int j = 0; int line = 0; int row =

九日王朝——他只是一個寶寶你們不要欺負他。

專欄達人 授予成功建立個人部落格專欄

位運算陣列中只出現一次的兩個數字

題目: 一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次,請寫程式找出這兩個出現一次的數字。要求時間複雜度是O(n),空間複雜度是O(1). 分析: 由於限制了複雜度,所以要用異或運算來解,什麼是異或? 首先,計算機1個位元組是8位(1Byte=8bit);其次,異

C#MVC使用ajaxFileUpload匯入Excel並顯示在Grid中

學習瞭如何使用ajaxFileUpload(無重新整理上傳)匯入Excel檔案,並在頁面中顯示出來。C#,asp和MVC操作形似,這裡重點說MVC,asp只貼出來程式碼。 準備:在頁面引入js檔案。 Step1:(ajaxFileUpload是一個開

ReverseInteger 一個整數反轉這個整數

package leetcode151withexplain; /**  * 本題題意:給出一個整數,反轉這個整數  *  *  Example1: x = 123, return 321  Example2: x = -123, return -321  *  *  

C語言結構體、聯合記憶體對齊規則總結

一、結構體 1.1什麼是結構體       在C語言中,結構體是一種資料結構,是C提供的聚合型別(C提供了兩種聚合型別:陣列和結構)的一種。結構體與陣列的區別是:陣列是相同型別的集合,而結構體可能具有不同的型別。 結構體也可以被宣告為變數,陣列或者指標等,用以實現較複雜的