1、编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefg”。右移字符串。
按照最笨的方法:
申请(malloc)一个buf为100的空间,传字符串和buf和右移个数给func函数,经过一系列转换,得到最终值,返回buf并打印。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
char* func(char *str,char *buf,int n2)
{
char *p = str;
while (*p!='\0') p++; //p指向字符串末尾
int n = n2;
while (n--) p--; //利用n来让p偏移
printf("右移字符:%s\n",p);
for (int i = 0; *p!='\0'; i++) //将需要移动的字符寸给buf
{
buf[i] = *(p++);
}
strcat(buf,str); //将字符串追加到buf中
int k = strlen(buf); //得到buf长度
while (n2--) buf[--k]=0;; //把最后要移动字符删除
return buf; //返回