C# 解析c中的字符串并将其放入变量中

C# 解析c中的字符串并将其放入变量中,c#,arrays,string,parsing,char,C#,Arrays,String,Parsing,Char,大家好,我是一名学生,仍在学习C。我需要解析一个具有以下格式的字符串: < test, 1, 0, 1> 对于逗号分隔的字符串,可以使用string.Split: 如果字符串没有足够的条目,请确保添加错误处理部分的条目可能少于4个,。如果没有可解析的数字,则int.Parse可能引发异常 关于C中的字符串的一个注意事项:它们是不可变的引用类型。因此,对字符串的每个操作都会返回一个新字符串,而不是操作当前实例。例如,Trim不会修剪当前实例,但会返回修剪后的字符串。这听起来像是家庭作

大家好,我是一名学生,仍在学习C。我需要解析一个具有以下格式的字符串:

< test, 1, 0, 1>

对于逗号分隔的字符串,可以使用string.Split:

如果字符串没有足够的条目,请确保添加错误处理部分的条目可能少于4个,。如果没有可解析的数字,则int.Parse可能引发异常


关于C中的字符串的一个注意事项:它们是不可变的引用类型。因此,对字符串的每个操作都会返回一个新字符串,而不是操作当前实例。例如,Trim不会修剪当前实例,但会返回修剪后的字符串。

这听起来像是家庭作业/学习作业,我们不提供这些代码。通常,这一部分是学习经验的组成部分。我们能做的就是给你一些大概的想法

分析此格式的字符串。如何提取单词test和1,0,1

对于这个特定的示例,正确的数据类型应该是1个字符串,3个整数。关于这件事,你没有什么可以概括的。NET在编译时是强类型的。虽然它具有弱类型的互操作功能,如与XML Web服务的交互,但这些功能绝对是先进的

相对而言,拆分字符串是问题的难点。我至少可以想到以下解决方案:

在切割任何前导和尾随以及 对它使用CSV解析器,尤其是在这不是唯一一行的情况下 使用正则表达式正则表达式 通过for循环手动拆分字符,并将每个字符存储到字符串[]的一个元素中。
作为标记的一部分,CSV解析器和正则表达式似乎是最有可能使用的工具。但这取决于你以前学过什么。通常,这样的任务是为了强化你之前的紧张状态。

绳子到底是什么样子的?还是测试,1,0,1?我的意思是,这是字符串的一部分,还是你只是添加了它们来标记字符串?@RenéVogt它是字符串的一部分,因为它标记了字符串的开始和结束。好的,根据我的回答更新了我的答案,它实际上是我项目论文的一部分,是的,它是最难的部分。我问这个问题是因为它将是arduino和c之间的通信线路。我仍在学习C和正则表达式似乎是一个很好的选择。谢谢你:
string input = "<test, 1, 0, 1>";

// first remove the < and >
string inputWithoutBrackets = input.TrimStart('<').TrimEnd('>');

// split the string at the commas
string[] parts = inputWithoutBrackets.Split(',');

string messageFromPC = parts[0].Trim(); // use Trim to get rid of whitespaces
int com1 = int.Parse(parts[1].Trim());
int com2 = int.Parse(parts[2].Trim());
int com3 = int.Parse(parts[3].Trim());