字符数组循环右移2位。c语言
发布网友
发布时间:2022-04-24 02:41
我来回答
共4个回答
热心网友
时间:2023-10-22 14:21
#include<stdio.h>
int main()
{char s[]="123456789",*p1,*p2,a,b;
for(p1=s;*p1;p1++);
p2=--p1;
b=*p1;
p2=p1-1;
a=*(p2--);
for(;p1>=s;)*p1--=*p2--;
s[0]=a;
s[1]=b;
printf("%s\n",s);
return 0;
}
热心网友
时间:2023-10-22 14:22
#include <stdio.h>
#include <string.h>
int main()
{
char str[10]={"abcde"};
char ch1,ch2;
int len,i;
len=strlen(str);
//先把最后两个单元的字符保存在ch1和ch2中
ch1=str[len-1];
ch2=str[len-2];
for(i=len-3;i>=0;i--)//将剩下的字符从后往前向后移动两个单元
str[i+2]=str[i];
str[1]=ch1;
str[0]=ch2;
printf("循环右移后字符串为:%s\n",str);
return 0;
}
热心网友
时间:2023-10-22 14:22
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
char *rrc(char *pa,int n){
char *p,la;
la=strlen(pa);
if((p=(char *)malloc(sizeof(char)*(la+1)))==NULL){
printf("Application memory failure...\n");
exit(0);
}
strcpy(p,pa+la-n);
*(pa+la-n)='\0';
strcpy(pa,strcat(p,pa));
free(p);
return pa;
}
void main(void){
char a[]="1234567890";
printf("Before the shift: %s\n",a);
printf("After the shift: %s\n",rrc(a,2));
}
热心网友
时间:2023-10-22 14:21
#include<stdio.h>
int main()
{char s[]="123456789",*p1,*p2,a,b;
for(p1=s;*p1;p1++);
p2=--p1;
b=*p1;
p2=p1-1;
a=*(p2--);
for(;p1>=s;)*p1--=*p2--;
s[0]=a;
s[1]=b;
printf("%s\n",s);
return 0;
}
热心网友
时间:2023-10-22 14:23
你是要移动到别一个缓存区里,还是空出左边数组位置来
热心网友
时间:2023-10-22 14:22
#include <stdio.h>
#include <string.h>
int main()
{
char str[10]={"abcde"};
char ch1,ch2;
int len,i;
len=strlen(str);
//先把最后两个单元的字符保存在ch1和ch2中
ch1=str[len-1];
ch2=str[len-2];
for(i=len-3;i>=0;i--)//将剩下的字符从后往前向后移动两个单元
str[i+2]=str[i];
str[1]=ch1;
str[0]=ch2;
printf("循环右移后字符串为:%s\n",str);
return 0;
}
热心网友
时间:2023-10-22 14:22
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
char *rrc(char *pa,int n){
char *p,la;
la=strlen(pa);
if((p=(char *)malloc(sizeof(char)*(la+1)))==NULL){
printf("Application memory failure...\n");
exit(0);
}
strcpy(p,pa+la-n);
*(pa+la-n)='\0';
strcpy(pa,strcat(p,pa));
free(p);
return pa;
}
void main(void){
char a[]="1234567890";
printf("Before the shift: %s\n",a);
printf("After the shift: %s\n",rrc(a,2));
}
热心网友
时间:2023-10-22 14:23
你是要移动到别一个缓存区里,还是空出左边数组位置来
热心网友
时间:2023-10-22 14:21
#include<stdio.h>
int main()
{char s[]="123456789",*p1,*p2,a,b;
for(p1=s;*p1;p1++);
p2=--p1;
b=*p1;
p2=p1-1;
a=*(p2--);
for(;p1>=s;)*p1--=*p2--;
s[0]=a;
s[1]=b;
printf("%s\n",s);
return 0;
}
热心网友
时间:2023-10-22 14:22
#include <stdio.h>
#include <string.h>
int main()
{
char str[10]={"abcde"};
char ch1,ch2;
int len,i;
len=strlen(str);
//先把最后两个单元的字符保存在ch1和ch2中
ch1=str[len-1];
ch2=str[len-2];
for(i=len-3;i>=0;i--)//将剩下的字符从后往前向后移动两个单元
str[i+2]=str[i];
str[1]=ch1;
str[0]=ch2;
printf("循环右移后字符串为:%s\n",str);
return 0;
}
热心网友
时间:2023-10-22 14:22
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
char *rrc(char *pa,int n){
char *p,la;
la=strlen(pa);
if((p=(char *)malloc(sizeof(char)*(la+1)))==NULL){
printf("Application memory failure...\n");
exit(0);
}
strcpy(p,pa+la-n);
*(pa+la-n)='\0';
strcpy(pa,strcat(p,pa));
free(p);
return pa;
}
void main(void){
char a[]="1234567890";
printf("Before the shift: %s\n",a);
printf("After the shift: %s\n",rrc(a,2));
}
热心网友
时间:2023-10-22 14:23
你是要移动到别一个缓存区里,还是空出左边数组位置来