/*=============================================================
输入的字符串反序存放
算法分析:1 初始化字符串
2 获取字符串总的字符个数n
3 如果字符个数为偶数那么 第一个和第n个互换.....第n/2-1与n/2+2互换
如果n为奇数,那么第一个和第n个互换 ,n+1/2个字符不动
==============================================================
作者:最后的村长
时间:2009年9月28日
工具:DEV C++
version:1.0
==============================================================*/
#include <stdio.h>
#include <stdlib.h>
#define N 10
/*=============================================================*/
int main()
{
char str[N];//定义字符串
gets(str);//输入字符串
puts("输入的字符串是:");//输出字符串便于对比
puts(str);
int count=0;//字符串计数
char temp;
while(str[count]!='\0')//获取字符串中字符的个数
count++;
printf("字符串中共有%d个字符",count);
if((count+1)%2==0)//根据字符串中字符个数为奇数还是偶数对字符串采取不同的反序措施
{
for(int i=0;i<=count/2;i++)
{
temp=str[i];
str[i]=str[count-i-1];
str[count-i-1]=temp;
}
}
else//字符个数为偶数情况下的反序
{for(int i=0;i<=(count-1)/2;i++)
{
temp=str[i];
str[i]=str[count-i-1];
str[count-i-1]=temp;
}
}
puts("\n调换后的字符串是:");
puts(str);
system("PAUSE");
return 0;
}
/*=============================================================
用函数实现输入的字符串反序存放
算法分析:1 初始化字符串
2 获取字符串总的字符个数n
3 将字符串名和字符个数作为参数传递给反序函数reverse
如果字符个数为偶数那么 第一个和第n个互换.....第n/2-1与n/2+2互换
如果n为奇数,那么第一个和第n个互换 ,n+1/2个字符不动
==============================================================
作者:最后的村长
时间:2009年9月28日
工具:DEV C++
version:2.0
==============================================================*/
#include <stdio.h>
#include <stdlib.h>
#define N 10
void reverse(char str[N],int count);
/*=============================================================*/
int main()
{
char str[N];//定义字符串
gets(str);//输入字符串
puts("输入的字符串是:");//输出字符串便于对比
puts(str);
int count=0;//字符串计数
while(str[count]!='\0')//获取字符串中字符的个数
count++;
printf("字符串中共有%d个字符",count);
reverse(str,count);
puts("\n调换后的字符串是:");
puts(str);
system("PAUSE");
return 0;
}
void reverse(char str[N],int count)//函数参数为字符串名和字符个数
{
char temp;
if((count+1)%2==0)//根据字符串中字符个数为奇数还是偶数对字符串采取不同的反序措施
{
for(int i=0;i<=count/2;i++)
{
temp=str[i];
str[i]=str[count-i-1];
str[count-i-1]=temp;
}
}
else//字符个数为偶数情况下的反序
{for(int i=0;i<=(count-1)/2;i++)
{
temp=str[i];
str[i]=str[count-i-1];
str[count-i-1]=temp;
}
}
}
评论