69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include <assert.h>
char *shift ( char *str, int n )
{
int length;
char *p;
assert ( str !=NULL );
length=strlen ( str );
p= ( char * ) malloc ( sizeof ( char ) * ( length+1 ) );
if ( n <=length )
{
strcpy ( p,str+length-n );
strncat ( p,str,length-n );
* ( p+length ) ='\0';
strcpy ( str,p );
}
else
{
strcpy ( p,str+length- ( n%length ) );
strncat ( p,str,length- ( n%length ) );
* ( p+length ) ='\0';
strcpy ( str,p );
}
free ( p );
return str;
}
int main()
{
char str[] = "ABCDEFG";
printf ( "%s\n",shift ( str,8 ) );
return 0;
}
char *shift(char *str, int n)
{
int i = 0,tmp = 0;
int len = strlen(str);
len = len-n;
printf("%d",len);
for(;i<n;i++,len++)
{
tmp = str[len];
str[len] = str[i];
str[i] = tmp;
}
for(i = 0;i<strlen(str);i++)
{
printf("%c",str[i]);
}
}
char str[] = "ABCDEFG";
char *shift(char *str, int n)
{
int nResult;
int lenStr = strlen(str);
char *temp = new char[lenStr];
for(int i = 0; i < lenStr; i++ )
{
nResult = (i - n)%lenStr;
temp[nResult] = str[i];
}
strcpy(str,temp);
delete temp;
return str;
}