C語言字符串循環右移可以通過以下步驟實現:
以下是一個示例代碼:
#include <stdio.h>
#include <string.h>
void rightRotateString(char str[], int n) {
int len = strlen(str);
n = n % len;
char temp[len];
// 復制后n位到臨時數組的前n位
strncpy(temp, str + len - n, n);
// 復制前len-n位到臨時數組的第n位到len-1位
strncpy(temp + n, str, len - n);
// 將臨時數組復制到原始數組
strncpy(str, temp, len);
}
int main() {
char str[] = "abcde";
int n = 2;
printf("原始字符串:%s\n", str);
rightRotateString(str, n);
printf("右移后的字符串:%s\n", str);
return 0;
}
運行上述代碼,輸出結果為:
原始字符串:abcde
右移后的字符串:deabc
注意,上述代碼使用了strncpy
函數進行字符串的復制,該函數會在目標字符串的末尾自動添加字符串結束符’\0’。