gpt4 book ai didi

c - 如何在C中将字符与char指针分开

转载 作者:行者123 更新时间:2023-11-30 21:16:14 25 4
gpt4 key购买 nike

我的 C 文件中有 pipeline 变量:

const char *pipeline = "1|12|23|34|45|56|67|78|89|90";

static int doWork(char *data, char *res_data) {

for (i = 0; i < strlen(data); i++) {
int index = // here I want to get 1,12,23... as integer to be used as index for my purpose
}
}

我的问题是,如何从 char * 读取 1,12,23,...,n

编辑:

此外,还需要考虑以下几点:

  1. 数字范围可以是任意的。管道中可能有 10 个、84 个或 55 个。
  2. 我想要 index=1 for i=0index=12 for i=1index=23 for i=2 以及等等。

最佳答案

如果允许 pipelinechar[] 而不是 char *,则此方法有效:

#include <stdio.h>
#include <string.h>

int main ()
{
char pipeline[] = "1|12|23|34|45|56|67|78|89|90";
char * pch;
pch = strtok (pipeline,"|");
int num;
while (pch != NULL)
{
sscanf (pch,"%d",&num);
printf("%d\n",num);
pch = strtok (NULL, "|");
}
return 0;
}

此外,您还可以:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
char *pipeline = "1|12|23|34|45|56|67|78|89|90";
char *pch=pipeline;
while (*pch)
{
int index=strtol(pch,&pch,10);
printf("%d\n",index);
if(*pch=='|')
pch++;
}
return 0;
}

关于c - 如何在C中将字符与char指针分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34655238/

25 4 0
文章推荐: c# - 如何在 WP7 中设置定时通知提醒功能?
文章推荐: c# - 如何从 list 中对象的属性绑定(bind) checkedlistbox?