溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言字符串的循環(huán)右移操作

發(fā)布時(shí)間:2024-08-30 13:41:52 來(lái)源:億速云 閱讀:83 作者:小樊 欄目:編程語(yǔ)言

在C語(yǔ)言中,要實(shí)現(xiàn)字符串的循環(huán)右移操作,可以先將原始字符串復(fù)制到一個(gè)新的字符串中,然后將原始字符串的最后n個(gè)字符移動(dòng)到新字符串的開(kāi)頭,接著將原始字符串的剩余部分添加到新字符串的末尾。以下是一個(gè)示例代碼:

#include<stdio.h>
#include<string.h>

void rotate_right(char *str, int n) {
    int len = strlen(str);
    if (n > len) {
        n = n % len;
    }
    
    char temp[len + 1];
    strcpy(temp, str);
    
    strncpy(str, &temp[len - n], n);
    strncpy(&str[n], temp, len - n);
    str[len] = '\0';
}

int main() {
    char str[] = "Hello, World!";
    int n = 3;
    
    printf("Original string: %s\n", str);
    rotate_right(str, n);
    printf("Rotated string: %s\n", str);
    
    return 0;
}

這段代碼首先計(jì)算字符串的長(zhǎng)度,然后根據(jù)給定的偏移量n進(jìn)行取模運(yùn)算,以確保偏移量不大于字符串長(zhǎng)度。接下來(lái),我們創(chuàng)建一個(gè)臨時(shí)字符串temp,并將原始字符串復(fù)制到其中。然后,我們將原始字符串的最后n個(gè)字符移動(dòng)到新字符串的開(kāi)頭,并將原始字符串的剩余部分添加到新字符串的末尾。最后,我們將結(jié)果字符串打印出來(lái)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI