功能描述:
输入一长串字符串,并对指定的开始位置和结束位置内的字符串反转
#include"stdio.h"
#include"stdlib.h"
#define N 100
int main()
{
system("clear");//清除屏幕(linux下使用)
char c[N],temp;
int i=0;
int j=0;
int start=0;
int end=0;
int countNum=0;
int rev=0;
printf("请输入字符串,100个字符以内……\n");
scanf("%s",&c);
for(countNum=0;c[countNum];countNum++)
;
printf("你输入的字符个数是:%d\n",countNum);
printf("请输入需要反转字符的起始位置与结束位置用逗号分开\n");
scanf("%d,%d",&start,&end);
//加入判断位置是否合法
if(start < 0 || start > countNum || end < 0 || end > countNum)
{
printf("输入的翻转位置非法!\n");
exit(1);
}
i=start;
rev=(end-start)/2+1+start;
for(start;start<rev;start++,end--)
{
temp=c[start-1];
c[start-1]=c[end-1];
c[end-1]=temp;
}
for(j=0,i=0;j<countNum;j++,i++)
{
printf("c[%d]=%c\n",i,c[i]);
}
return 0;
}
程序运行结果截图:
请输入字符串,100个字符以内……
abcdefg
你输入的字符个数是:7
请输入需要反转字符的起始位置与结束位置用逗号分开
2,5
c[0]=a
c[1]=e
c[2]=d
c[3]=c
c[4]=b
c[5]=f
c[6]=g