逆轉字串內容(C語言)

2021-09-29 15:35:14 字數 1507 閱讀 4910

問題描述:

有乙個字元陣列的內容為:「student a am i」,

請你將陣列的內容改為"i am a student".

要求:不能使用庫函式。

只能開闢有限個空間(空間個數和字串的長度無關)。

student a am i

i ma a tneduts

i am a student

思路:

對字串內容進行逆轉,可以先逆轉整個句子的順序,再逆轉每個單詞的順序。

用到的函式及作用:

void

reverse_one

(char

*left,

char

*right)

}

這一部分函式,對指定長度的字串進行逆轉(長度為right-left),當left < right成立時,交換left和right指向的內容

void

reverse

(char

*p,int len)

right = p -1;

//對每個單詞進行逆轉

reverse_one

(left, right);if

(*p ==

' ')

}}

在這一部分函式中,首先,將整個字串逆轉,結果是:

然後,在對每乙個單詞進行逆轉,結果是:

即可完成題目要求

用到的知識點:

1、陣列傳參會發生降維,降維成指向陣列內容的指標;

2、對指標解引用表示的是指標所指向的目標;

3、指標加一,加的是其所指向型別的大小;

執行結果:

完整**:

#include

#include

void

reverse_one

(char

*left,

char

*right)

}void

reverse

(char

*p,int len)

right = p -1;

reverse_one

(left, right);if

(*p ==

' ')}}

void

main()

(C語言)楊氏矩陣 逆轉字串 左旋字串

時間複雜度小於o n 2 逆轉字串 3 左旋字串 題目 有乙個二維陣列,陣列的每行從左到右是遞增的,每列從上到下是遞增的,在這樣的陣列中查詢乙個數字是否存在 一般方法 define crt secure no warnings 1 include include include define col...

字串逆轉

題意 輸入乙個字串,逆向輸出該串。sample input 3frankly,i don t think we ll make much money out of this scheme.madam i m adam sample output hcum ekam ll ew kniht t nod...

逆轉中文字串 逆轉字串

要顯示中文必須使用unsigned char型,如果使用char 就裝不下了。然後要明白乙個unsigned char 其實只是裝了乙個中文字元的一半。列印的時候如果只列印乙個unsigned char有可能什麼都看不到。所以逆轉的時候要把兩個unsigned char看成乙個整體來交換。如下 in...