C語言 字串迴圈右移

2021-08-22 05:55:14 字數 494 閱讀 7615

編寫乙個程式,作用是把乙個字串從末尾開始迴圈右移n個,如"abcdef",n=3,則輸出'defabc";"12345",n=2,則輸出"45123";

思路:用迴圈,每次都把最後乙個字元元素挪到首元素的位子,其餘元素位子後移乙個,共n次。

void main()

printf("%s",a);

}

總結:主要是迴圈,while迴圈共n次,先把尾元素a[len]保留下來賦值給c;再用乙個內迴圈for()把所有元素後移一,空出來的a[0]用c補。

我最先想到的方法是用兩個並列的for()語句:乙個操作後n個元素使其左移到相應位子,乙個操作其餘元素使其右移到相應位子,然後賦值給新定義的陣列b,輸出b。

可是存在乙個有亂碼字尾的問題,

因為是字串,所以會有'\0'的存在,不知道怎麼處理?求指教。

字串迴圈右移 c語言

乙個長度為len的字串,對其迴圈右移n位 期望 char str abcdefg 右移3次後,變成 efgabcd 思路 思路1.如果用每移動一次,就要把整個字串整體移動一次的方法,顯得太費勁了。我們可以用空間換時間,通過記憶體拷貝來實現。需要新申請一塊相同大小的記憶體,把原字串的後n個位元組拷貝到...

字串迴圈右移 c語言

乙個長度為len的字串,對其迴圈右移n位 期望 char str abcdefg 右移3次後,變成 efgabcd 思路 思路1.如果用每移動一次,就要把整個字串整體移動一次的方法,顯得太費勁了。我們可以用空間換時間,通過記憶體拷貝來實現。需要新申請一塊相同大小的記憶體,把原字串的後n個位元組拷貝到...

字串迴圈右移

題目內容 輸入乙個字串和乙個非負整數 n,要求將字串迴圈右移n次。輸入格式 輸入在第 1行中給出乙個字串,以 表示結束,不是字串的一部分,字串的長度未知,但至少有乙個字元 輸入的第 2行給出非負整數n。輸出格式 在一行中輸出迴圈右移 n次後的字串。輸入樣例 hello world 2輸出樣例 d h...