天天看點

輸入一長串字元串,并對指定的開始位置和結束位置内的字元串反轉

功能描述:

           輸入一長串字元串,并對指定的開始位置和結束位置内的字元串反轉

#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
           

繼續閱讀