我正在阅读“使用C ++第2版编程原理和实践”,第23章中有关于这样的字段的理论问题
- 空字段和不存在字段之间有什么区别?
醇>
我能在书中找到的最好的东西是有关哪个领域的信息。在我看来,这是格式化整数值以控制它们在输出上的显示方式。
例如,setw()
操纵器可用于更改数字在输出上的显示方式。
我在谷歌中找不到任何东西,所以如果有人可以放弃一些快速,简短的评论,它会对我有所帮助。
或许我最好问一下
什么是空字段,什么是不存在的字段?
编辑:我正在阅读的章节称为“文本操作”,Bjarne在此处引入正则表达式来读取表格(4列和大量行)以查看表格中的所有信息是否匹配模式
答案 0 :(得分:0)
这是另一个论坛的回答,一个好人为我回答:)
#include <iostream>
#include <string>
#include <regex>
void display_field( const std::string& text, const std::string& name )
{
// the field that we are interested in is the marked subexpression ([[:alnum:]]*)
// ie. zero or more alphanumeric characters immediately after 'name='
const std::regex regex( name + '=' + "([[:alnum:]]*)" ) ;
std::smatch match_results ;
std::regex_search( text, match_results, regex ) ;
std::cout << "'" << name << "' == " ;
if( match_results.empty() ) std::cout << " --- (nonexistent field)\n\n" ;
else if( match_results[1].length() == 0 ) std::cout << "'' --- (empty field)\n\n" ;
else std::cout << "'" << match_results[1] << "' --- (non-empty field)\n\n" ;
}
int main()
{
const std::string text = "name=etrusks email= posts=168 phone= " ;
for( std::string fn : { "name", "email", "posts", "age", "phone", "address" } )
display_field( text, fn ) ;
}
这只是一个非常好的答案,对此感到高兴:)
输出:
&#39;名称&#39; ==&#39; etrusks&#39; ---(非空场)
&#39;电子邮件&#39; ==&#39;&#39; ---(空场)
&#39;的帖子&#39; ==&#39; 168&#39; ---(非空场)
&#39;年龄&#39; == ---(不存在的字段)
&#39;电话&#39; ==&#39;&#39; ---(空场)
&#39;地址&#39; == ---(不存在的字段)