我在这里粘贴一些代码,使用gcc file.c -lxml2编译没有警告,假设你的系统中安装了libxml2.
#include <libxml/parser.h>
#include <libxml/xpath.h>
#include <assert.h>
#include <libxml/tree.h>
#include <libxml/xpathInternals.h>
xmlDocPtr
getdoc (char *docname) {
xmlDocPtr doc;
doc = xmlParseFile(docname);
if (doc == NULL ) {
fprintf(stderr,"Document not parsed successfully. \n");
return NULL;
}
return doc;
}
xmlXPathObjectPtr
getnodeset (xmlDocPtr doc, xmlChar *xpath){
xmlXPathContextPtr context;
xmlXPathObjectPtr result;
context = xmlXPathNewContext(doc);
if (context == NULL) {
printf("Error in xmlXPathNewContext\n");
return NULL;
}
if(xmlXPathRegisterNs(context, BAD_CAST "new", BAD_CAST "http://www.example.com/new") != 0) {
fprintf(stderr,"Error: unable to register NS with prefix");
return …Run Code Online (Sandbox Code Playgroud) 复制包含char数组的两个结构的标准方法是什么?
这是一些代码:
#include stdio.h>
#include string.h>
#include stdlib.h>
typedef struct {
char* name;
char* surname;
} person;
int main(void){
person p1;
person p2;
p1.name = (char*)malloc(5);
p1.surname = (char*)malloc(5);
strcpy(p1.name, "AAAA");
strcpy(p1.surname, "BBBB");
memcpy(&p2, &p1, sizeof(person));
free(p1.name);
printf("%s\n", p2.name);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该行printf("%s\n", p2.name);不打印,因为我释放了缓冲区.
我的结构的问题是它们比struct更大person.它们包含数百个char指针,我必须逐个复制每个成员.
是否有另一种方法来复制包含char数组的两个结构而不使用malloc和strcpy为每个成员?
我有一个程序,我们将它命名为a.out,它从文件中读取输入并将一些输出写入stdout.例如,文件包含第2,2行,我的程序"./a.out文件"在屏幕上写入4.
现在为了确保a.out在补丁之后运行良好,我正在为Linux寻找一个好的回归套件.我希望包含2,2个程序的每个文件返回4,我希望这是一个测试用例.
关于回归包的任何想法?
我真的不明白"多个未完成的请求"这个表达方式.
你能举个例子吗?
什么是出色的要求?什么是"突出要求"的对立面?
我有一个名为s_int的短整数变量,它保存value = 2
unsighed short s_int = 2;
Run Code Online (Sandbox Code Playgroud)
我想将这个数字复制到char数组到char数组的第一个和第二个位置.
让我们说我们有char buffer[10];.我们希望将两个字节s_int复制到buffer[0]和buffer[1].
我该怎么做?
我想使用C中的regex.h库从表达式中提取子字符串.这是代码
#include <regex.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
regex_t preg;
char *string = "Random_ddName:cateof:Name_Random";
char *pattern = ".*Name:\\(.*\\):Name.*";
int rc;
size_t nmatch = 1;
regmatch_t pmatch[1];
if (0 != (rc = regcomp(&preg, pattern, 0))) {
printf("regcomp() failed, returning nonzero (%d)\n", rc);
exit(EXIT_FAILURE);
}
if (0 != (rc = regexec(&preg, string, nmatch, pmatch, 0))) {
printf("Failed to match '%s' with '%s',returning %d.\n",
string, pattern, rc);
}
else {
printf("With the whole expression, "
"a matched substring \"%.*s\" is found …Run Code Online (Sandbox Code Playgroud) 我有一个整数val.
data[0]=0;
data[1]=0;
data[2]=(val>>8)%256;
data[3]=val%256;
Run Code Online (Sandbox Code Playgroud)
我该如何做对位?如何从char数组中获取int?
我没有正确使用C中的格式说明符.几行代码:
int main()
{
char dest[]="stack";
unsigned short val = 500;
char c = 'a';
char* final = (char*) malloc(strlen(dest) + 6);
snprintf(final, strlen(dest)+6, "%c%c%hd%c%c%s", c, c, val, c, c, dest);
printf("%s\n", final);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想要的是复制
final [0] =随机char final [1] =随机char final [2]和final [3] =短阵列final [4] =另一个char ....
我的问题是我想将short int的两个字节复制到最终数组的2个字节.
谢谢.