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

   2025-02-15 8360
核心提示:C语言字符串循环右移可以通过以下步骤实现:定义一个字符数组,存储原始字符串。定义一个变量n,表示要右移的位数。计算字符串的

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

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

以下是一个示例代码:

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

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言