一段书上的实例程序搞得我头大,请好人帮忙 1.书上没错 在这里,测字符串长度应为 args[0].Length 表示第一个参数的长度2.这个问题 之所以你会不理解,我觉得和第一个问题有关系 args[0][0]表示第一个参数(字符串)的第一个字符3.这里可以不用两层括号 只是书写上的习惯问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个程序和这个例程很类似using System;class IfApp{ public static int Main(string[] args) { //如果命令行参数小于一个,则显示程序正确用法,退出程序 if(args.Length < 1) { Console.WriteLine("Usage: ifApp char"); return 1; } //获得第一个命令行参数第一个字母 //把该字母赋给变量chLetter char chLetter = args[0][0]; //如果字母大于等于字符'A' if(chLetter >= 'A') { //同时,字母小于字符'Z' //则该字母为大写字母 if(chLetter <= 'Z') { Console.WriteLine("{0} 是个大写字母", chLetter); return 0; } } //如果字母界与字符'a'和'z'之间 //则该字母为小写字母 if(chLetter >= 'a' && chLetter <= 'z') { Console.WriteLine("{0} 是个小写字母", chLetter); return 0; } //如果字母为数字 if(Char.IsDigit(chLetter)) { Console.WriteLine("{0} 是个数字", chLetter); return 0; } //缺省地(以上条件都不符合),则该字母为特殊字符 Console.WriteLine("{0} 是个特殊字符", chLetter); return 1; }} 1——args是一个字符串数组,其中记录了命令行运行时的参数携带情况(已经被系统分解,通常用空格间隔),如果其长度为0,说明不携带参数(这个似乎变化很大,我很少使用控制台程序,所以没有分析过,在以前的C中,长度为1表示不携带参数,因为命令行中,命令名也是包含在参数中的)。2——按照上面的分析,args[0]指参数args数组中的第一个参数。由于字符串(string)可以通过索引获得指定位置的字符,所以args[0][0]就是获得参数args[0]这个字符串中的第一个字符。在C(包括C#)中,索引总是从0开始(好象现在的VB.NET也从0开始了)。3——这个问题就有点暧昧了。外面的这层括号是IsDigit函数调用时的括号,里面的括号嘛,那是可有可无的,不过礼多人不怪,多层括号没有导致错误也是允许的。就象:int a=8;if(a==3+5)...一样,要判断a是否等于8直接使用不就行了,干吗要写成3+5或者10-2呢?4——这个问题就我也不知道了,char(等同Char)确实没有FromString这个函数。看代码:chLetter = Char.FromString(args[0]);和代码:char chLetter = args[0][0];我想使用FromString函数也就是为了获得args[0][0]吧。这个问题,估计是测试版的问题,看一下你的书,是否针对测试版写的。 huaisha83(怀) :谢谢,你讲得很透彻,基本上我都懂了 triout(笨牛) :我的书是2001年2月写的,也许真的是针对BATE版本的,呵呵!~谢谢 求一个C#的事件 求助 关于c# .net 集合 在线等待 有多少人喜欢将枚举对象的成员用中文命名? c# 怎样控制控件随窗体变化而变化(大小和位置) DataGridView的值转换问题 如何将Form的画板上的图像导出到word中?? ListView播放GIF动画 C# .net水晶报表显示样式(在线等) C#里面有类似于BKDRHASH这样的把字符串哈希成int的函数么? 求教类似FLASH的页面怎么实现 ---=== 调查:了解“设计模式”的请举手! ===--- [版务]请KevinPi进来解释一下你的帖子和Piyongcai的关系
和这个例程很类似using System;class IfApp
{
public static int Main(string[] args)
{
//如果命令行参数小于一个,则显示程序正确用法,退出程序
if(args.Length < 1)
{
Console.WriteLine("Usage: ifApp char");
return 1;
} //获得第一个命令行参数第一个字母
//把该字母赋给变量chLetter
char chLetter = args[0][0];
//如果字母大于等于字符'A'
if(chLetter >= 'A')
{
//同时,字母小于字符'Z'
//则该字母为大写字母
if(chLetter <= 'Z')
{
Console.WriteLine("{0} 是个大写字母", chLetter);
return 0;
}
} //如果字母界与字符'a'和'z'之间
//则该字母为小写字母
if(chLetter >= 'a' && chLetter <= 'z')
{
Console.WriteLine("{0} 是个小写字母", chLetter);
return 0;
} //如果字母为数字
if(Char.IsDigit(chLetter))
{
Console.WriteLine("{0} 是个数字", chLetter);
return 0;
} //缺省地(以上条件都不符合),则该字母为特殊字符
Console.WriteLine("{0} 是个特殊字符", chLetter);
return 1;
}
}
args是一个字符串数组,其中记录了命令行运行时的参数携带情况(已经被系统分解,通常用空格间隔),如果其长度为0,说明不携带参数(这个似乎变化很大,我很少使用控制台程序,所以没有分析过,在以前的C中,长度为1表示不携带参数,因为命令行中,命令名也是包含在参数中的)。
2——
按照上面的分析,args[0]指参数args数组中的第一个参数。由于字符串(string)可以通过索引获得指定位置的字符,所以args[0][0]就是获得参数args[0]这个字符串中的第一个字符。在C(包括C#)中,索引总是从0开始(好象现在的VB.NET也从0开始了)。
3——
这个问题就有点暧昧了。
外面的这层括号是IsDigit函数调用时的括号,里面的括号嘛,那是可有可无的,不过礼多人不怪,多层括号没有导致错误也是允许的。就象:int a=8;if(a==3+5)
...一样,要判断a是否等于8直接使用不就行了,干吗要写成3+5或者10-2呢?
4——
这个问题就我也不知道了,char(等同Char)确实没有FromString这个函数。看代码:chLetter = Char.FromString(args[0]);和代码:char chLetter = args[0][0];我想使用FromString函数也就是为了获得args[0][0]吧。这个问题,估计是测试版的问题,看一下你的书,是否针对测试版写的。