c语言代码练习35
问:将字符串的n个字符左旋
例 :asdf左旋一个sdfa
asdf左旋两个dfas
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<string.h> void Ayue(char* ar, int k) { int i = 0; int sz = strlen(ar); for (i = 0; i < k; i++) { char tmp = *ar; int j = 0; for (j = 0; j < sz-1; j++) { *(ar + j) = *(ar + j + 1); } *(ar + sz - 1) = tmp; } } int main() { char ar[] = "abcdef"; Ayue(ar, 2); printf("%s\n",ar); return 0; }
方法二
三步逆旋法
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<string.h> #include<assert.h> void Mylift(char* left, char* right) { assert(left != NULL); assert(right != NULL); char rmp = 0; while (left<right) { rmp = *left; *left = *right; *right = rmp; right--; left++; } } void Ayue(char* arr, int k) { assert(arr); int sz = strlen(arr); assert(k < sz); Mylift(arr,arr+k-1);//逆序左边 Mylift(arr+k,arr+sz-1);//逆序右边 Mylift(arr,arr+sz-1);//逆序整体 } int main() { char arr[] = "abcdef"; Ayue(arr, 2); printf("%s\n", arr); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程