当前位置:编程学习 > C#/ASP.NET >>

C#--第2周实验--任务7--编写一个控制台应用--判断S所指的字符串是否回文(即顺读和逆读相同的字符串)

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:判断S所指的字符串是否回文(即顺读和逆读相同的字符串)
* 作 者: 雷恒鑫
* 完成日期: 2012 年 09 月 09 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
 
[csharp]
<span style="font-size:24px;">using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
 
namespace ConsoleApplication_do_while 

    class Program 
    { 
        static void Main(string[] args) 
        { 
            Console.WriteLine("这是一个判断您所输入的字符串是否“回文”的程序"); 
            Console.Write("请输入您所要判断的字符串:"); 
            string s = Console.ReadLine(); 
            char[] c = s.ToCharArray(); 
            int i = c.Length; 
            int j = c.Length-1; 
            char[] c1 = new char[c.Length]; 
            //利用foreach语句循环输出数组中每一个元素 
            foreach (char var in c) 
            { 
                c1[j] = var; 
                --j;   //字符串反向读取 
            } 
            //bool m = c1.Equals(c); 
           // Console.WriteLine("返回值为:{0}", m); 
            for (int n = 0; n < c.Length; ++n) 
            { 
                if (c1[n] != c[n]) 
                { 
                    foreach (char var in c) 
                    { 
                        Console.Write(var);  //依次读取字符串中的元素 
 
                    } 
                    Console.Out.WriteLine("不是回文数。"); 
                    break; 
                } 
                if (n == c.Length - 1) 
                { 
                    foreach (char var in c) 
                    { 
                        Console.Write(var); 
       
                    } 
                    Console.Out.WriteLine( " 是回文数。"); 
                } 
            } 
           
             
            Console.ReadKey(); 
        } 
    } 

</span> 

 运行结果:
 

 

 
 
问题:
1.我用c1.Equals(c)函数,不管c1 和 c两个字符串是否相等,返回值都是False,各位大侠有知道的帮我解答一下,我把这个问题发到论坛上,大家也可以在论坛上给我发帖,谢谢大家了。
以下是这个问题的链接地址:
 
[csharp] 
//bool m = c1.Equals(c); 
// Console.WriteLine("返回值为:{0}", m); 
以下这两行代码的位置在源程序中注释掉了,大家可以解除注释运行一下,看是否和我说的一样。
经验积累:
1.我学会了foreach语句的使用方法,
 
[csharp] 
foreach (char var in c) 
                    { 
                        Console.Write(var);  //依次读取字符串中的元素 
 
                    } 

先执行 in c,在执行 char var.
 

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,