我想用C语言创建一个程序,用户可以在其中键入下面的命令,我的代码可以获取值。
例如,如果用户键入:
"创建2,3+4,5";"向右移动2,3+3,4";
对于create命令,我想获得4个整数(2,3,4和5(并存储在一组特定的变量中。对于moveright命令,我希望对另一组变量也这样做。
然而,我不知道如何用C编写一个代码来理解单词";创建";意味着它应该将以下整数存储到一组特定的变量中(中间的"+"也让我感到困惑(。。。
我曾考虑过使用switchcase,但我读到C不支持它
我真的很感激任何帮助,至少在我应该研究什么方面。
要在程序运行时获得用户输入,可以使用标准库中的I/O函数。用fgets
获取用户输入,然后用sscanf
解析它是一种常见的、健壮的方法。或者,根据复杂性的不同,您可能需要手动解析字符串以获得所需的信息——字符串库有几个有用的函数可以帮助实现这一点。
main
函数的第二个参数是一组在启动时传递给程序的字符串,如果您想编写一个每次运行只做少量工作的简单程序,这可能很有用。您需要在每次运行程序之间保持这些数据。一种方法是将数据存储在文件中,并每次使用标准文件函数进行检索。
C绝对有一个switch语句,尽管只是针对整数常量表达式。
尽管如此,你的意图还是很不清楚的-从你的描述来看,听起来你甚至不确定你的程序会做什么。如果你不知道你的程序能做什么,你会怎么写?
你应该从更简单的问题开始,然后逐渐形成这样的问题。
以下是一组增加难度的程序:
- 向用户显示一条简单的消息
- 询问用户的姓名,并向他们个人显示问候语
- 重复读取由空格分隔的两个数字并显示其产品
- 用数字用户输入填充数组。向用户询问操作符(
+
、-
、*
、/
(,并使用操作符显示该数组的缩减 - 使用用户输入,用名称和年龄填充结构的数组(每行一个条目,用空格分隔,例如
Alice 26
(。显示最年轻和最年长人员的姓名和年龄 - 要求用户提供一组逗号分隔的名称(例如
Alice,Bob,...
(。- 解析这个输入字符串,将每个名称存储在一个数组中
- 询问用户的姓名
- 在数组中搜索该名称,如果找到,则显示该名称中字母值的总和(
a
或A
为1
等(
如果你能完成这六个程序,那么你将对编写目标程序所需的最低技能有一个基本的了解,这基本上是一个解释器。