gpt4 book ai didi

c - 将非分隔字符中的数字读入 C 中的 int 数组

转载 作者:太空宇宙 更新时间:2023-11-04 08:11:17 24 4
gpt4 key购买 nike

我正在尝试将非分隔字符输入中的数字读取到一个 int 数组中。示例输入和输出:

Input: 12a34b56 C7d8E9
Output: [1,2,3,4,5,6,7,8,9]

这是我的尝试:

int check_digit (char c) {
if ((c>='0') && (c<='9')) return 1;
return 0;
}

int main(int argc, char const *argv[]) {
int numArray[1000], tempChar, c = 0;

tempChar = getchar();

while ( tempChar != EOF ) {
if ( check_digit(tempChar) ) {
numArray[c] = tempChar - '0';
c += 1;
}
tempChar = getchar();
}

printf("[");
for ( int i = 0; i < c-2; i++ ) {
printf("%d,", numArray[c]);
}
printf("%d]\n", numArray[c-1]);

return 0;
}

这不能正常工作。读取一个字符后停止。

示例输入和输出:

Input: 1a3b5c7d9

Output: [0,0,0,9]

Desired output: [1,3,5,7,9]

最佳答案

代码有错

printf("%d,", numArray[c]);

必须是

printf("%d,", numArray[i]);

打印循环可以简单地是

printf("[");
for ( int i = 0; i < c; i++ )
{
printf("%d%c", numArray[i], (i<c-1)? ',' : ']');
}
printf("\n");

请注意,您的代码仅管理一个数字值。例如。 45 被管理为 45

关于c - 将非分隔字符中的数字读入 C 中的 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39242212/

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