【问题标题】:Is there a concept of '\0' in C#?C#中有'\0'的概念吗?
【发布时间】:2022-07-27 16:54:07
【问题描述】:

我所知道的是,在C++和C中\0是用来结束字符串,然后使用下面的方法来查找字符串的长度。

char[] arr = 'Welcome';
for( int i = 0; arr[i] != '\0'; i++){
  return i;
}

但对于 C#,它似乎不起作用。下面的代码有效,但基本上捕获了异常。 C#中查找字符串长度的基本方法是什么?

            string str = "abc";

            int length = 0;
            try
            {
                for (int i = 0; str[i] != '\0'; i++)
                {
                    length++;

                }
            }
            catch (System.IndexOutOfRangeException)
            {
                Console.WriteLine(length);
                return;
            }

【问题讨论】:

  • "在 C# 中查找字符串长度的基本方法是什么?" - Length 属性。
  • c# 为您完成所有繁重的工作。你不必担心。
  • 这应该是任何体面的书籍、教程或课程的一部分。
  • @JonSkeet 抱歉,我不是在寻找长度。我知道的
  • 那么粗体字是什么意思? “在 C# 中查找字符串长度的基本方法是什么?”

标签: c# string


【解决方案1】:

字符串在 C# 中不是以空值结尾的(至少在可见的情况下;我相信它们在内部是为了互操作,但终止字符出现在字符串本身的边界之外)。字符'\0' (U+0000) 的概念确实存在,但它可以出现在字符串中的任何位置——没有什么特别之处。

只需使用Length 属性来确定字符串的长度。

【讨论】:

    【解决方案2】:

    只需使用String.Length:

    var str = "abc";
    for( int i = 0; i< str.Length; i++)
    {
      Console.WriteLine(a[i]);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多