c语言字符串循环右移怎么实现

avatar
作者
猴君
阅读量:0

C语言字符串循环右移可以通过以下步骤实现:

  1. 定义一个字符数组,存储原始字符串。
  2. 定义一个变量n,表示要右移的位数。
  3. 计算字符串的长度len。
  4. 若n大于len,则取n对len取余作为右移的实际位数。
  5. 创建一个临时字符数组temp,长度为len。
  6. 将原始字符串的后n位复制到temp数组的前n位。
  7. 将原始字符串的前len-n位复制到temp数组的第n位到len-1位。
  8. 将temp数组复制到原始字符串数组。
  9. 输出右移后的字符串。

以下是一个示例代码:

#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’。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!