急急急!!!!用C#编程…写一个函数,输入一行字符,将此字符串中最长的单词输出

用C#

一行中如果输入的是一个个的单词以空格隔开的话,可以用split分割了之后存到数组再判断追问

现在在上机考试啊,你可以帮我调试一下然后把代码发过来吗?如果可以那就太感谢了。帮帮忙吧

追答

你的是winform还是控制台的

追问

控制台的

追答

string str = Console.ReadLine();
string[] strarray = str.Split(' ');
for (int i = 0; i < strarray.Length;i++ )
{
for (int j =1;j<strarray.Length;j++ )
{
if (strarray[j - 1].Length < strarray[j].Length)
{
string temp = strarray[j - 1];
strarray[j - 1] = strarray[j];
strarray[j] = temp;
}
}
}
Console.WriteLine(strarray[0]);

这个是我把分割后的字符串做了个长度的排序,然后最长的放在第一位,最后输出的,分割条件是空格,没有考虑相同长度的单词

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-23
static void Main(string[] args)
{
Console.WriteLine("输入一行字符,空格隔开");
string str = Console.ReadLine();
string x = " ";
string [] s=str.Split(x.ToCharArray ());
int temp=0;
for (int i = 0; i < s.Length; i++)
{
int n = s[i].Length;
if (n > temp)
{
temp = n;
}
}
Console.WriteLine(s[temp]);
Console.ReadKey();
}
第2个回答  2013-09-23
static string MaxLengthWord(string str) {
            str = System.Text.RegularExpressions.Regex.Replace(str, "[^a-zA-Z]", "`");
            string[] arrWord = str.Split(new char[]{'`'}, StringSplitOptions.RemoveEmptyEntries);
            int MAX = 0, idx = 0;
            for(int i = 0; i < arrWord.Length; i++){
                if (arrWord[i].Length > MAX) {
                    MAX = arrWord[i].Length;
                    idx = i;
                }
            }
            return arrWord[idx];
        }

追问

控制台的

追答

上面函数的调用:
Console.WriteLine("请输入一个句子:");
Console.Write(MaxLengthWord(Console.ReadLine()));
Console.ReadKey();

追问

请问那个函数的调用是插在哪里的呀?调试不出来呢

追答

放在 main 里面

相似回答