#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 函数:将字符串中的字符向右移动 'n' 个位置
void move_right(char str[], int len, int n)
{
// 为移动后的字符串分配内存空间
char* str_move = (char*)malloc(len + 1);
int index = 0;
int i;
// 循环遍历原始字符串中的每个字符
for (i = 0; i < len; i++)
{
// 计算字符移动后的新索引位置
index = (i + n) % len;
// 将字符放置在移动后的字符串中的新索引位置
str_move[index] = str[i];
}
// 在移动后的字符串末尾添加空字符,确保字符串正确终止
str_move[i] = '\0';
// 将移动后的字符串复制回原始字符串
strcpy(str, str_move);
// 释放为移动后的字符串分配的内存空间
free(str_move);
}
int main()
{
// 原始字符串及其长度
char str[] = "abcdefghi";
int len = strlen(str);
int n;
// 从用户获取要移动的位置数
printf("请输入要右移的位数:");
scanf("%d", &n);
// 显示原始字符串
printf("没改前:%s\n", str);
// 调用 move_right 函数执行字符移动操作
move_right(str, len, n);
// 显示移动后的修改字符串
printf("移动后:%s\n", str);
return 0;
}
C语言:编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”,如果 n = 2, 移动后应该是“hiabcdefg”。
最新推荐文章于 2023-11-16 19:32:43 发布
本文介绍了如何使用C语言编写一个名为`move_right`的函数,该函数接受一个字符串和两个整数参数,将字符串中的字符向右移动指定位数。示例中展示了如何获取用户输入并应用该函数到字符串abcdefghi上。
摘要由CSDN通过智能技术生成