Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中使字符串输入不区分大小写?_C#_String_Case Sensitive_Uppercase_Lowercase - Fatal编程技术网

C# 如何在C中使字符串输入不区分大小写?

C# 如何在C中使字符串输入不区分大小写?,c#,string,case-sensitive,uppercase,lowercase,C#,String,Case Sensitive,Uppercase,Lowercase,因此,在我学习C语言的过程中,我试图创建一个交互式故事,根据用户提交的一些输入进行更改。如果用户在本例中输入Bobby,叙述者开始像Hank Hill那样说话。然而,根据编程方式,输入区分大小写 我曾尝试过一个建议,即将if语句的格式设置为: 如果boyName.ToUpper==Bobby 但这并没有触发具有不同字母大小写的if命令 Console.WriteLine($"{beginning} \n What was the boy's name?"); boyName = Consol

因此,在我学习C语言的过程中,我试图创建一个交互式故事,根据用户提交的一些输入进行更改。如果用户在本例中输入Bobby,叙述者开始像Hank Hill那样说话。然而,根据编程方式,输入区分大小写

我曾尝试过一个建议,即将if语句的格式设置为:

如果boyName.ToUpper==Bobby

但这并没有触发具有不同字母大小写的if命令

 Console.WriteLine($"{beginning} \n What was the boy's name?");
 boyName = Console.ReadLine();
  if (boyName == "Bobby")
   {
   Console.WriteLine("That boy ain\'t right, I tell ya what... ");
   Console.ReadKey();
   Console.WriteLine($"{boyName} boy dang climbed a big ol' tree..."); 
   Console.ReadKey();
   }

   else
    {
    Console.WriteLine($"The kid named {boyName} climbed a tree...");
    Console.ReadKey();
    }
我希望有一行代码,无论在什么情况下都能触发if条件。然而,我所尝试的一切并没有改变这一点。它必须特别是Bobby,否则会触发else条件

您应该尝试

如果boyName.ToUpper==Bobby.ToUpper
从技术上讲,使用不区分大小写的比较比更改要比较的字符串的大小写要好,因为从所有语言字母表的比较角度来看,ToUpper并不总是按照预期工作。有关更多信息,请参阅中的土耳其语“i”部分

要在不修改原始字符串的情况下解决问题,可以使用该方法,该方法接受要比较的字符串的参数以及指定要使用的比较类型的参数

因此,您的代码可能如下所示:

if (string.Equals(boyName, "Bobby", StringComparison.OrdinalIgnoreCase))
或者您可以使用实例方法版本,该版本稍微短一点:

if (boyName.Equals("Bobby", StringComparison.OrdinalIgnoreCase))

boyName.ToUpper==Bobby欢迎来到StackOverFlow@DaimonCide,也许您可以尝试将if语句的两边都大写,就像if-boyName.ToUpper==Bobby.ToUpper==Bobby.Toloweri==Bobby.ToLowerHi一样。也许你知道,ToUpper的功能不正确。此函数不会使字符串驼峰大小写,而是使所有字母大写。可能重复谢谢。这解决了我的问题。我很少喜欢在不知道为什么它会起作用的情况下做事情,那么为什么它会起作用呢?ToUpper将所有字符都设置为大写,所以我们比较你的varboyName和stringBobby都是大写的。。。结果是BOBBY==BOBBY也。托洛尔;是另一种可以使用的方法。看看您可以用于各种任务的字符串方法。