gpt4 book ai didi

C 将字符串分割成int数组

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

我有一个char*格式如下:

* SEARCH 1 2 3 ...

具有由空格分隔的可变数量的整数。我想编写一个函数来返回 int[]* SEARCH 之后的整数.

我应该如何编写这个函数?

最佳答案

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

int *f(const char *s, int *n /* out */){
if(strncmp(s, "* SEARCH", 8)!=0){
fprintf(stderr, "format error!\n");
*n = 0;
return NULL;
}
s += 8;
const char *p = s;
int v, len, status;
int count = 0;
while((status=sscanf(p, "%d%n", &v, &len))==1){
++count;
p +=len;
}
if(status==0){
fprintf(stderr, "format error!\n");
*n = 0;
return NULL;
}
int *ret = malloc(count * sizeof(*ret));
p = s;
count = 0;
while(EOF!=sscanf(p, "%d%n", &v, &len)){
ret[count++]=v;
p +=len;
}
*n = count;
return ret;
}

int main (void){
int i, n, *nums = f("* SEARCH 1 2 3", &n);

for(i=0; i<n; ++i)
printf("%d ", nums[i]);
printf("\n");
free(nums);
return 0;
}

关于C 将字符串分割成int数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27118855/

25 4 0
文章推荐: c++ - 保存AVL树中节点下的叶子数
文章推荐: mysql - 在 spring hibernate 中使用 OneToOne 关系防止在父表中插入空值
文章推荐: c# - RestSharp Deserialize List 返回 Could not cast or convert from System.String to