本文共 552 字,大约阅读时间需要 1 分钟。
例如:把一个char 组成的字符串循环右移 n 位,原来是 ”abcdefghi“,如果 n = 2,移位后应该是 ”hiabcdefgh“
函数头如下:
/**
@ pstr 指的是以 '\0' 结尾的字符串指针
@ steps 指的是要求移动的位数 n
*/
void LoopMove(char *str, int steps)
{
........
}
void LoopMove(char *pStr, int steps){ if (pStr==NULL) return ; int len = strlen(pStr); steps = steps % len; int lenNew = len-steps; //移动后的后lenNew位字符 char *strTemp = (char *)malloc(lenNew+1); //将移位前的前lenNew为保存起来 if (strTemp==NULL) { puts("申请内存失败!"); return ; } strncpy(strTemp, pStr, lenNew); strTemp[lenNew] = '\0'; //将需要移动的后steps位字符保存到pstr前 steps位 int i = 0; for (; i
转载地址:http://kbkqi.baihongyu.com/