从命令行输入一个以英文小写字母所构成的字符串,
输出每一个字母出现的次数。
判断字符串中是否包含非小写字母的字符出现,
如果包含,提示用户重新输入。
请大家帮忙看一下
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
string str;
int i,j,flag;
flag=1;
Console.Write("please a string:");
str=Console.ReadLine();
while(flag==1)
{
for(i=0;i<str.Length;i++)
if((int)str[i]<97 || (int)str[i]>122)
{
Console.WriteLine("please a new string again:");
str=Console.ReadLine();
continue;
}
if(i>=str.Length)
flag=0;
}
从这里开始,可否改进:
int[] strNumFlag=new int[str.Length];
bool[] strFlag=new bool[str.Length];
for(i=0;i<str.Length;i++)
strFlag[i]=true;
for(i=0;i<str.Length;i++)
{
for(j=i;j<str.Length;j++)
if((str[i]==str[j]) && strFlag[j])
{
strNum[i]=strNum[i]+1;
//strNum[j]=strNum[i];
strFlag[i]=true;
strFlag[j]=false;
}
}
Console.WriteLine("结果为:");
for(i=0;i<strNum.Length;i++)
if(strNum[i]!=0)
Console.WriteLine("{0} {1} ",str[i],strNum[i]);
Console.Write("\n");
//
}
}
}
using System;
using System.Text;
namespace ConsoleApplication6
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
string str;
int i,j,flag;
flag=1;
char[] chletter={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int[] intrate=new int[26];
Console.Write("please a string:\n");
str=Console.ReadLine();
while(flag==1)
{
for(i=0;i<str.Length;i++)
if((int)str[i]<97 || (int)str[i]>122)
{
Console.WriteLine("\nplease a new string again:\n");
str=Console.ReadLine();
continue;
}
if(i>=str.Length)
flag=0;
}
//
for(i=0;i<str.Length;i++)
{
for(j=0;j<26;j++)
{
if(str[i]==chletter[j])
{
intrate[j]=intrate[j]+1;
break;
}
else
continue;
}
}
//
Console.Write("\nThe rerult of the statistic:\n");
for(i=0;i<26;i++)
if(intrate[i]!=0)
Console.Write("the letter :{0} ,Show times :{1}\n",chletter[i],intrate[i]);
}
}
}
[此贴子已经被作者于2005-12-6 19:18:25编辑过]