C字符串倒置-中部对称

问题如图

在这里插入图片描述

Code

#include<stdio.h>
#include<string.h>
#define MAX_LENGTH 10//最大字符串长度 

void inverString(char *str,int len);
int main(){
	int len=0,result=0;
	char str[MAX_LENGTH];
	printf("请输入字符串:");
	gets(str);
	
	//使用库函数计算长度,注意此处不包含结束字符‘’ 
	len=strlen(str);
	//倒置 
	inverString(str,len);
	//写入
	result=writeToFile(str,len);
	if(result)
		printf("%s
写入成功!
",str);
	else
		printf("%s
写入失败!
",str);
	system("pause");
	return 0;
}
/*
  1:Success
  0:fail
*/
int writeToFile(char *str,int len){
	FILE *fp;
	if((fp=fopen("out.txt","wt+"))==NULL)
		return 0;
		fwrite(str,sizeof(char),len,fp);
	fclose(fp);
		return 1;
}
void inverString(char *str,int len){
	int i=0;

	char temp=' ';
	
	//因为是对称交换,所以一半的循环就好了。 
	while(i<len/2){
		temp=str[i];
		//对称交换 
		str[i]=str[len-(i+1)];
		str[len-(i+1)]=temp;
		i++;
	}
} 

演示图

在这里插入图片描述

原文地址:https://www.cnblogs.com/tfxz/p/12823704.html