天天看点

输入一长串字符串,并对指定的开始位置和结束位置内的字符串反转

功能描述:

           输入一长串字符串,并对指定的开始位置和结束位置内的字符串反转

#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
           

继续阅读