牛客網C 刷題十四

2021-10-03 10:05:51 字數 1048 閱讀 5954

編寫乙個函式,作用是把乙個char組成的字串迴圈右移n個。比如原來是「abcdefghi」如果n=2,移位後應該是「hiabcdefg」 函式頭是這樣的:

//pstr是指向以』\0』結尾的字串的指標

//steps是要求移動的n

void loopmove (

char

* pstr,

int steps )

#include

#include

//pstr是指向以'\0'結尾的字串的指標

//steps是要求移動的n

void

loopmove

(char

* pstr,

int steps)

;memcpy

(temp, pstr+len-st, st)

;memcpy

(temp+st, pstr, len-st)

;memcpy

(pstr, temp, len);}

intmain()

解釋:

memcpy(目標位址, 源位址, 拷貝的長度)。例如 pstr=「123456」,steps=2,那麼 len=6,st=2。第乙個 memcpy 中,pstr+len-st=「56」,st=2 所以就是把 「56」 這兩個字元拷貝給 temp,temp=「56」 兩個字元,即 temp[0]=『5』,temp[1]=『6』。第二個 memcpy 中,temp+st=temp[2] 所在的位址,pstr=「123456」,len-st=4,也就是說把 pstr 的前 4 個字元拷貝到從 temp[2] 開始的位址裡,即 temp[2]=『1』,temp[3]=『2』,temp[4]=『3』,temp[5]=『4』,即 temp=「561234」 六個字元。第三個 memcpy 就是把 temp 裡面的 6 個字元拷貝到從 pstr 起的連續 6 個 char 空間裡頭,因為第 7 個空間裡至始至終都沒有人動過,所以第 7 個空間裡頭還有 『\0』,所以 pstr=「561234」 字串。這樣就能實現迴圈右移了。

牛客網C 刷題

今天刷了些c 的題,就其中物件導向分享一下我的感悟。首先區分一下物件導向和面向過程 物件導向是首先抽象出各種物件 各種類 把資料和方法都封裝在物件中 類 然後各個物件之間發生相互作用。面向過程是將問題分解成若干步驟 動作 每個步驟 動作 用乙個函式來實現,在使用的時候,將資料傳遞給這些函式。stl有...

牛客網刷題

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 立華奏在學習初中數學的時候遇到了這樣一道大水題 設箱子內有 n 個球,其中給 m 個球打上標記,設一次摸球摸到每乙個球的概率均等,求一次摸球摸到打標記的球的概率 e...

牛客網刷題

時間限制 c c 2秒,其他語言4秒 空間限制 c c 524288k,其他語言1048576k 64bit io format lld 立華奏是乙個剛剛開始學習 oi 的萌新。最近,實力強大的 qingyu 當選了 iods 9102 的出題人。眾所周知,iods 是一場極其毒瘤的比賽。為了在這次...