/* (程序頭部注釋開始)
* 程序的版權和版本聲明部分
* 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.