如何从字符串中获取两个数字并在一个变量中转换为int?

我正在努力完成我的作业,这是自今天下午以来我无法弄清楚的最后一件事。 比如说我在数组中有字符串,就像这个ABCD24EFG ,我想在一个变量中得到那个数字24 ,我初始化哪个类型是int 我可以使用一个数字来完成它并像这样转换它 number_holder = array_name[4] – ‘0’; 我将在number_holder获得2但是如何才能将整体变为24并将它们转换为int类型?

2d动态数组(在C中),每行具有特定的行号和不同的列大小

如何在每行中创建具有特定行号和不同列大小的2d动态数组(在C中)? 例如:这是一个数组(3 =行) |1 | 4 | 5 | |3 | |6 | 2 | 第1行 – 3列 第2行 – 1列 第3行 – 2列 我希望我的程序在运行时向用户询问每一行以给出cols的数量。 我如何制作这样的数组?

将2D数组转换为char *数组并将char复制到字符串结尾的最快方法

我正在寻找一个示例代码或如何改进下面的代码(它是非常慢的IMO,但我可以写),以最快的方式将2D数组转换为char*并将char复制到它。 char* join(int c, size_t arrsize, const char* arr[]) { char *buf, *tbuf, *val; size_t i, vsize, total; buf = malloc(1); for(i = total = 0; i < arrsize; ++i) { val = arr[i]; vsize = strlen(val); if((tbuf = realloc(buf, total + vsize + 2)) == NULL) { if(buf != NULL) free(buf); return NULL; } […]

C:如何访问存储在void指针中的函数指针(void *)?

混淆了如何访问存储在void指针中的函数指针(void *)。 假设你有这个: void *functions[] = { &sqrt, // int ft_sqrt(int nb); &power, &logN, &factorial; }; // An array of void pointers, each storing a function pointer. 如果我想访问sqrt函数,我的猜测如下: (int (*)(int)) functions[0](x) 但我的猜测是错误的: error: called object type ‘void *’ is not a function or function pointer 那么如何访问其中一个函数呢?

Rpc – 分段故障(核心转储)

我尝试用ubuntu中的RPC编程一个新程序,服务器执行正常,但我总是得到错误:执行客户端之后的分段错误(核心转储)这是我的代码 banque.x const max_cin = 8; typedef string typeCin; struct client { typeCin cin; float solde; }; typedef struct client client; struct cnMysql{ char * host; char * user; char * pass; }; typedef struct cnMysql cnMysql; program BANQUE { version Client { string Connect(cnMysql cn) = 0; string AddC(client c) = 1; client ConC(typeCin […]

c circular double linked-list:遍历末尾节点的fwd / rev给出不同的指针地址

相关post: c circular double linked-list delete_node – iterate在删除后首次遍历已删除的节点 所有,在删除该节点之前实现搜索节点连接行号“x”,我遇到了一个问题,正向和反向搜索都识别出正确的节点,但是反向搜索报告了调用者节点地址的指针而不是前锋? 这仅适用于最后一个节点(最高行号)。 如果仅使用转发搜索(pba_fwd_iter_test),则会正确删除最后一个节点。 但是,如果使用反向搜索(pba_rev_iter_test),那么地址设置为“(victim-> next) – > prev = victim-> prev;” 不正确,它设置“(victim-> next) – > prev =(victim-> next) – > prev”。 例如,使用反向搜索到达终端节点然后执行delete_node会导致以下结果: 49: 7 – (line to delete) This is a line of text that is somewhere around 50 to 80 characters in length 48 – prev: […]

如何在C + python + UART中正确表示单词?

在串行通信中,我需要将来自python的密文发送到UART,它能够使用C读取它。 首先,在python方面使用这种技术: ciphertext=(b’\x24\x70\xb4\xc5\x5a\xd8\xcd\xb7\x80\x6a\x7b\x00\x30\x69\xc4\xe0\xd8′) ser.write(ciphertext) 在C端,我将收到的密文放在缓冲区中。 我测试如果第一个字节24,数据包的开始: if (buffer_RX[0]==’\x24′) { for (i=1;i<=17;i++) //sizeof(buffer_RX)==17 { printf("%x \n",buffer_RX[i]); } } else { printf("It is not a packet!"); } 我的结果是: 70 b4 c5 5a d8 cd b7 80 6a 7b 0 30 69 c4 e0 d8 所以我有两个问题, – 拳头是为什么\x00以这种方式显示,我的意思是只有一个零0? – 第二个是我怎么能有相同的表示: const unsigned int ciphertext[4] = {0x70b4c55a, 0xd8cdb780, 0x6a7b0030,0x69c4e0d8}; […]

为什么sizeof(指针)返回不正确的值?

可能重复: Sizeof字符串文字 在我的windows7 mingw环境中,我试过这个: char str[] = “hello”; sizeof(str)的值是6,而不是4或8。 怎么会发生这种情况?

在C / Objective-C中使用Python的bisect

我希望将这个用Python编写的类https://stackoverflow.com/a/4113400/12920移植到Objective-C或C中。 它使用了一种名为bisect.bisect_right东西。 我对Python没有太多经验,那么如何在C / obj-c中实现呢?

使用&或*在C中分配指针的不同方法?

在C中,如果我想要一个指向变量的指针 int c = 12 ; int *p ; p = &c ; 或者我可以这样做 int c = 12; int p; p=&c; 在这两种情况下,p的值都是c的地址,请你告诉我将面临的问题。