gpt4 book ai didi

c - 我想将逗号分隔字符串的值(数字)存储在数字数组中,并在 C 中将所有空值设置为 0

转载 作者:太空宇宙 更新时间:2023-11-04 07:04:54 26 4
gpt4 key购买 nike

我想将所有这些值存储在一个数字数组中输出应该是014182 70 90 0 0等等……我得到了一个非常有趣的输出

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

#define MAX_LENGTH_OF_NUMBER 9

char *string ;
char *comma ;
char *position ;
char total ;
int scores[42], i, j ;
char number[MAX_LENGTH_OF_NUMBER + 1] ;


int main()
{
string = "014182,70,90,,,,,89,,69,76,80,,,80,,100,,76,,,,,,,,,,,,,,,,,,,,,,90," ;

comma = strchr (string, ',') ;
position = string ;
while (comma)
{
i, j = 0 ;
while (position < comma) {
number[i] = *position ;
i++ ;
position++ ;
}
number[i] = '\0' ;
position++ ;
comma = strchr (position, ',') ;

scores[j] = atoi (number) ;
printf("%d\n", scores[j]) ;
j++ ;
}
}

最佳答案

这是一个非常大的问题:

i, j = 0 ;

这实际上是两个不同的表达式,多亏了 comma operator :

i

j = 0

表达式i 被简单地忽略,然后你对j 进行赋值。

我觉得你想做

i = 0;
j = 0;

在某种程度上相关的注释中,在循环顶部分配 j 将意味着您将一遍又一遍地覆盖相同的(第一个)scores 条目再次。

您还应该进行一些边界检查,以免 j 变大。

关于c - 我想将逗号分隔字符串的值(数字)存储在数字数组中,并在 C 中将所有空值设置为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33940361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com