正文

字符串反序存放2009-09-28 21:44:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/cunzhang/48647.html

分享到:

/*=============================================================
    输入的字符串反序存放
     算法分析: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;
                          }
    }
}
     

阅读(2511) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册