我在main方法中声明了一个字符串,并允许用户输入它。
static void Main(string[] args)
{
string phrase;
Console.Write("Type english letters.\nEnter phrase");
phrase = Console.ReadLine();
morseCode(phrase);
Console.ReadLine();
}
在main之外,我声明了一个void函数。该函数假定将字符串的每个元素发送到另一个函数,该函数返回字母的摩尔斯翻译,但我对该函数没有问题。
这是空函数
static void morseCode(string p)
{
for(int i=0; p[i] != '\0'; i++)
{
Console.Write(morseEncode(p[i]) + "/");
}
}
我使用VS。我没有从调试器收到任何错误,并且可以执行代码。它会执行其预期的操作。但是在运行时出现此错误:
System.IndexOutOfRangeException
错误指示符指向for循环。我在要求内做错了。正如我所说,代码可以运行,但我想解决此问题。
答案 0 :(得分:2)
c#字符串不是必须终止的0
static void morseCode(string p)
{
for(int i=0; i<p.Length; i++)
{
Console.Write(morseEncode(p[i]) + "/");
}
}
答案 1 :(得分:0)
因为您不需要索引,所以可以执行
foreach(char c in p)
Console.Write(morseEncode(c) + "/");