请问关于c的具体应用场景有哪些?

2026-04-29 03:162阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计619个文字,预计阅读时间需要3分钟。

请问关于c的具体应用场景有哪些?

我得到了一段代码,它在一行中寻找至少有3个不同元音的单词。问题是我不明白为什么它会超出范围。以下是代码片段:

cppstatic string findword(string e){ char[] vowels={'a', 'e', 'i', 'o', 'u'}; char[] sk={' ', '.', '', '', '‘', '’', ',', '.', '!', '?'};

代码中定义了元音字符数组`vowels`和特殊字符数组`sk`。这些数组看起来是为了在字符串中查找符合条件的单词。然而,没有完整的代码逻辑,很难确定为什么它可能超出范围。需要更多上下文或完整的代码逻辑来分析这个问题。

我得到了一个代码,它在一行中找到一个至少有3个不同元音的单词.问题是我不知道为什么它会超出范围.

static string findword(string e) { char[] vowels = { 'a', 'e', 'i', 'o', 'u' }; char[] sk = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' }; string word= ""; string[] parts = e.Split(sk, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < e.Length; i++) { if (parts[i].IndexOf(vowels[i]) >= 3) { word = parts[i]; } } return word; }

因此,对于e =“我今天要回家”它应该返回“今天”.

请问关于c的具体应用场景有哪些?

这是我的版本:

var e = "I was going home today"; char[] vowels = { 'a', 'e', 'i', 'o', 'u' }; char[] sk = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' }; string word = ""; string[] parts = e.Split(sk, StringSplitOptions.RemoveEmptyEntries); var mostVowels = 0; for (int i = 0; i < parts.Length; i++) { var part = parts[i]; var numberOfVowels = 0; foreach (var vowel in vowels) { if (part.Contains(vowel)) numberOfVowels++; } if (mostVowels < numberOfVowels) { mostVowels = i; word = part; } } return(word);

它遍历各个部分,然后另一个循环检查该部分是否包含每个元音.然后它检查这个单词是否优于以前的最佳单词.

请注意,这会返回’going’,因为它是带有两个元音的第一个单词.

另请注意,我使用’foreach’而不是正常for循环,这有助于避免许多常见错误.

这段代码可能更好,因为它只查找每个元音一次.像’Aardvark’这样的单词只会得1分.毫无疑问,使用LINQ和正则表达式这是一种非常简洁的方法,但希望这可以帮助你了解你的循环和数组出错的地方.

编辑:这是一个正则表达式& LINQ版本适合您:

var r = new Regex("(a|e|i|o|u)"); var mostVowels = parts.Max(y => r.Matches(y).Count); var result = parts.First(x => r.Matches(x).Count == mostVowels);

正则表达式是寻找元音的助手.第一个查询计算每个单词中的元音数量并返回最大值.第二个用元音找到第一个单词.

标签:单词我得

本文共计619个文字,预计阅读时间需要3分钟。

请问关于c的具体应用场景有哪些?

我得到了一段代码,它在一行中寻找至少有3个不同元音的单词。问题是我不明白为什么它会超出范围。以下是代码片段:

cppstatic string findword(string e){ char[] vowels={'a', 'e', 'i', 'o', 'u'}; char[] sk={' ', '.', '', '', '‘', '’', ',', '.', '!', '?'};

代码中定义了元音字符数组`vowels`和特殊字符数组`sk`。这些数组看起来是为了在字符串中查找符合条件的单词。然而,没有完整的代码逻辑,很难确定为什么它可能超出范围。需要更多上下文或完整的代码逻辑来分析这个问题。

我得到了一个代码,它在一行中找到一个至少有3个不同元音的单词.问题是我不知道为什么它会超出范围.

static string findword(string e) { char[] vowels = { 'a', 'e', 'i', 'o', 'u' }; char[] sk = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' }; string word= ""; string[] parts = e.Split(sk, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < e.Length; i++) { if (parts[i].IndexOf(vowels[i]) >= 3) { word = parts[i]; } } return word; }

因此,对于e =“我今天要回家”它应该返回“今天”.

请问关于c的具体应用场景有哪些?

这是我的版本:

var e = "I was going home today"; char[] vowels = { 'a', 'e', 'i', 'o', 'u' }; char[] sk = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' }; string word = ""; string[] parts = e.Split(sk, StringSplitOptions.RemoveEmptyEntries); var mostVowels = 0; for (int i = 0; i < parts.Length; i++) { var part = parts[i]; var numberOfVowels = 0; foreach (var vowel in vowels) { if (part.Contains(vowel)) numberOfVowels++; } if (mostVowels < numberOfVowels) { mostVowels = i; word = part; } } return(word);

它遍历各个部分,然后另一个循环检查该部分是否包含每个元音.然后它检查这个单词是否优于以前的最佳单词.

请注意,这会返回’going’,因为它是带有两个元音的第一个单词.

另请注意,我使用’foreach’而不是正常for循环,这有助于避免许多常见错误.

这段代码可能更好,因为它只查找每个元音一次.像’Aardvark’这样的单词只会得1分.毫无疑问,使用LINQ和正则表达式这是一种非常简洁的方法,但希望这可以帮助你了解你的循环和数组出错的地方.

编辑:这是一个正则表达式& LINQ版本适合您:

var r = new Regex("(a|e|i|o|u)"); var mostVowels = parts.Max(y => r.Matches(y).Count); var result = parts.First(x => r.Matches(x).Count == mostVowels);

正则表达式是寻找元音的助手.第一个查询计算每个单词中的元音数量并返回最大值.第二个用元音找到第一个单词.

标签:单词我得