c语言中" : "(冒号)和问号是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中" : "(冒号)和问号是啥意思相关的知识,希望对你有一定的参考价值。
bool a = 1>3?false:true;
?: 是三元运算符由条件运算符组成的条件表达式的一般形式为:
表达式1 ? 表达式 2 : 表达式3,其中表达式 1、表达式2、表达式3,既可以是一个简单的表达式,又可以是由各种运算符组成的复合表达式。
计算过程很好理解:先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式的值。 如果表达式1 的值为假,则求表达式3 的值并把它作为整个表达式的值。
扩展资料:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
参考资料来源:百度百科-c语言
参考技术A 是一个语句,判断一个表达式的真假来执行两条代码比如
int a=9,b=8;
a>b?a=8:b=9; //就是这句
相当于if语句吧,问号前面的表达式为真的时候执行a=8,否则b=9;
明白了吧。本回答被提问者和网友采纳 参考技术B
这是C语言的三目运算符。
对于条件表达式b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式从不会既计算x,又计算y。
条件运算符是右结合的,也就是说,从右向左分组计算。例如,a?b:c?d:e将按a?b:(c?d:e)执行。
bool a = 1>3?false:true;
?: 是三元运算符由条件运算符组成的条件表达式的一般形式为:
表达式1 ? 表达式 2 : 表达式 3
其中表达式 1、表达式2、表达式3,既可以是一个简单的表达式,又可以是由各种运算符组成的复合表达式。
计算过程很好理解:
先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式的值。 如果表达式1 的值为假, 则求表达式3 的值并把它作为整个表达式的值。 参考技术D 冒号的话一般都是人家说话的时候就是打个冒号,说的是什么问号的话,一般是一个语句说完了等人家提的问题就是问好。
句点、单词和冒号的正则表达式
【中文标题】句点、单词和冒号的正则表达式【英文标题】:Regex for period, word, and then colon 【发布时间】:2021-05-07 09:36:28 【问题描述】:是否有正则表达式、python 或 javascript 方法来搜索句点、单词和定义,然后将其附加到字典或其他对象?
例如:
。回归:回归是再次回到以前的状态或条件。修辞:修辞是使用语言说服或影响人们的技能或艺术,尤其是听起来令人印象深刻但可能不真诚或不诚实的语言。
这将变成"Reversion" : "A reversion is turning back again to a previous state or condition", "Rhetoric" : "Rhetoric is the skill or art of using language to persuade or influence people, especially language that sounds impressive but may not be sincere or honest"
【问题讨论】:
/\. (.*): (.*)\./
这应该可以工作
我不会为此使用正则表达式,这是一个相当复杂的表达式。请记住:“有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题。”
【参考方案1】:
我在原句中插入了几句,以表明该方案可以获取文本中任意位置的模式。
我使用 reduce 将 matchAll 的返回值转换为一个对象。
x = `asoidn aiosjdn yaosui noapids poasm daioansoid apaoms d. Reversion: A reversion is turning back again to a previous state or condition. aasd aeoinad oianfds inauireb docn isenm opisd a. Rhetoric: Rhetoric is the skill or art of using language to persuade or influence people, especially language that sounds impressive but may not be sincere or honest.`;
matches = [...x.matchAll(/(\w+)\s*:\s*([^.:]+.)/g)];
obj = matches.reduce((dict, [_, name, text]) => (dict[name] = text, dict), );
console.log(obj);
【讨论】:
【参考方案2】:看看这段代码:
my_final_result =
input_str = ". Reversion: A reversion is turning back again to a previous state or condition. Rhetoric: Rhetoric is the skill or art of using language to persuade or influence people, especially language that sounds impressive but may not be sincere or honest."
# assuming that periods don't occur in definitions and only separate the particular definition from another
input_list = input_str.split(".")
for definition in input_list:
definition_list = definition.split(":")
if len(definition_list) == 2: # check if definition is correct
# save our key-value pair to dictionary. strip() deletes some possible spaces around the words
my_final_result[definition_list[0].strip()] = definition_list[1].strip()
print(my_final_result)
【讨论】:
【参考方案3】:过滤掉单词的正则表达式和定义是:
\.\s*([^:]*)\s*:\s*([^.]*)
演示:https://regex101.com/r/utgrCb/1/
\.\s*
起始点和可选空格
([^:]*)
“单词”是冒号之前的所有内容
\s*:\s*
冒号用可选空格包围
([^.]*)
“定义”是最后一个点之前的所有内容
【讨论】:
【参考方案4】:我想使用reduce,但最终得到了这个
const str = `Reversion: A reversion is turning back again to a previous state or condition. Rhetoric: Rhetoric is the skill or art of using language to persuade or influence people, especially language that sounds impressive but may not be sincere or honest.`
const dict =
const arr = str.split(/[$\.]?(\w+): /g).slice(1)
for (let i=0;i<arr.length-1;i+=2)
dict[arr[i]] = arr[i+1].trim()
console.log("dict",dict)
【讨论】:
以上是关于c语言中" : "(冒号)和问号是啥意思的主要内容,如果未能解决你的问题,请参考以下文章