Tag: 解析

用sscanf读日期

我必须使用带有以下代码行的sscanf从char *字符串中读取日期格式(dd-mm-yyyy;): sscanf(string, “%[^-]-%[^-]-%[^;];”, day, month, year) 其中日/月/年是每个3/3/5元素的字符串*。 这样它可以工作但是当我尝试使用day / moth / year作为integer变量(使用相同的sscanf )时,当我在它们上使用printf时,我得到了0 0 0值。 如果我改变sscanf sscanf(string, “%d-%d-%d;”, day, month, year) 我有segmentation fault 。 有人可以帮帮我吗? 使用K&R书,我找不到解决方案。

如何在支持空字段的同时使用sscanf解析逗号分隔字符串中的字段?

我有一个逗号分隔的字符串,可能包含空字段。 例如: 1,2,,4 使用基本的 sscanf(string,”%[^,],%[^,],%[^,],%[^,],%[^,]”, &val1, &val2, &val3, &val4); 我得到空字段之前的所有值,以及从空字段开始的意外结果。 当我从sscanf()中删除空字段的表达式时, sscanf(string,”%[^,],%[^,],,%[^,],%[^,]”, &val1, &val2, &val3, &val4); 一切都很好。 由于我不知道何时会得到一个空字段,有没有办法重写表达式以优雅地处理空字段?

用C解析二进制数据?

有没有关于如何在C中读取和解析二进制数据的库或指南? 我正在研究一些将在网络套接字上接收TCP数据包然后根据规范解析该二进制数据的function,并通过代码将信息转换为更有用的forms。 是否有任何图书馆可以做到这一点,甚至是执行此类事情的入门书?

在C中,解析一个由多个空格分隔的整数组成的字符串

我试图使用C将包含多行空白分隔整数的文件解析为动态int数组的动态数组。 每行都是数组数组中的数组。 每行中的行数和元素是非常量的。 到目前为止我所做的是使用fgets将每一行作为字符串抓取。 但是,我无法弄清楚如何解析一串空格分隔的整数。 我以为我可以使用sscanf(因为fscanf可以用来解析整个空格分隔的整数文件)。 但是,似乎sscanf具有不同的function。 sscanf只解析字符串中的第一个数字。 我的猜测是,因为该行是一个字符串不是一个流。 我已经四处查找了一种从字符串中创建流的方法,但它看起来并不像C中那样(我无法使用非标准库)。 char* line; char lineBuffer[BUFFER_SIZE]; FILE *filePtr; int value; … while((line = fgets(lineBuffer, BUFFER_SIZE, filePtr)) != NULL) { printf(“%s\n”, lineBuffer); while(sscanf(lineBuffer, “%d “, &value) > 0) { printf(“%d\n”, value); } } 有什么东西可以用来解析字符串。 如果没有,是否有整个系统的替代品? 我宁愿不使用REGEX。

使用数组初始化struct

我有几个数组: const string a_strs[] = {“cr=1”, “ag=2”, “gnd=U”, “prl=12”, “av=123”, “sz=345”, “rc=6”, “pc=12345”}; const string b_strs[] = {“cr=2”, “sz=345”, “ag=10”, “gnd=M”, “prl=11”, “rc=6”, “cp=34”, “cv=54”, “av=654”, “ct=77”, “pc=12345”}; 然后我需要解析’=’然后将值放在结构中。 (rc键映射到结构中的fc键),其forms为: struct predict_cache_key { pck() : av_id(0), sz_id(0), cr_id(0), cp_id(0), cv_id(0), ct_id(0), fc(0), gnd(0), ag(0), pc(0), prl_id(0) { } int av_id; int sz_id; int cr_id; int […]

解析数学表达式

(在c90)(linux) 输入: sqrt(2 – sin(3*A/B)^2.5) + 0.5*(C*~(D) + 3.11 +B) a b /*there are values for a,b,c,d */ c d 输入: cos(2 – asin(3*A/B)^2.5) +cos(0.5*(C*~(D)) + 3.11 +B) a b /*there are values for a,b,c,d */ c d 输入: sqrt(2 – sin(3*A/B)^2.5)/(0.5*(C*~(D)) + sin(3.11) +ln(B)) /*max lenght of formula is 250 characters*/ a b /*there […]

什么是好的C / C ++ CSS解析器?

什么是好的C / C ++ CSS解析器? 我能找到的只是CSSTidy ,它似乎更像是一个应用程序,而不是一个解析库。

将整数解析为字符串C.

如何在C中解析整数到string(char* || char[]) ? 是否有与C中的Java的Integer.parseInt(String)方法等效的方法?

C中的IPv6解析

我想知道如何在C中解析IPv6地址并将其转换为128位值? 所以hex地址如1:22:333:aaaa:b:c:d:e需要转换为128位等效二进制。 问题是IP地址可能是类型::2及其变体,因为它们是有效的IPv6地址。 输入来自键盘,因此是ASCII格式。

用于解析日期时间的C库

是否知道c的日期解析function。 我正在寻找类似的东西: time = parse_time(“9/10/2009”); printf(“%d\n”, time->date); time2 = parse_time(“Monday September 10th 2009”) time2 = parse_time(“Monday September 10th 2009 12:30 AM”) 谢谢