实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB

xiaoxiao2021-02-28  105

这个题的思路其实并不是很难理解,左旋字符串,可以先将第一个字符和最后一个字符交换,然后进行一个循环,就可以解决这个问题了;具体代码如下: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<Assert.h> void levo(char *pstr, int SZ,int key) { assert(pstr != NULL); int i = 0; int j = 0; for (i = 0; i < key; i++) { char tmp = pstr[0]; for (j = 0; j < SZ - 1; j++) { pstr[j] = pstr[j + 1]; } pstr[SZ - 1] = tmp; } } int main() { char str[] = "ABCDEFGH"; int key = 0; int SZ = sizeof(str) / sizeof(str[0])-1; printf("请输入你要旋转字符的个数"); scanf("%d", &key); levo(str,SZ,key); printf("%s", str); return 0; }
转载请注明原文地址: https://www.6miu.com/read-61288.html

最新回复(0)