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);
//使用库函数计算长度,注意此处不包含结束字符‘\0’
len=strlen(str);
//倒置
inverString(str,len);
//写入
result=writeToFile(str,len);
if(result)
printf("%s\n写入成功!\n",str);
else
printf("%s\n写入失败!\n",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++;
}
}
演示图
个人学习笔记!仅以学习为目的,感谢各位前辈!