gpt4 book ai didi

c - 将 C 字符串解析为数字和运算符

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

我需要解析字符串,因此我需要一个包含数字和运算符的数组(例如 [12, '+',45])。

这就是我获取字符串的方式:

char str[100];
fgets(str, 100, stdin);

下面是解析函数:

char* parse_string(char *string)
{
char result_digits[50][50];
char result_operators[50];
static char result_string[100];

int i = 0;
int digits_cnt = 0;
int digit_string = 0;
int operators_cnt = 0;
while (string[i] != '\n') {
if (detect_symbol_type(string[i]) == sym_digit) {
result_digits[digit_string][digits_cnt] = string[i];
digits_cnt++;
} else {
if (detect_symbol_type(string[i]) == sym_operator) {
result_operators[operators_cnt] = string[i];
operators_cnt++;
digit_string++;
digits_cnt = 0;
}
}
i++;
}
result_operators[operators_cnt] = '\n';

double result_numbers[100];
for (int i = 0; i <= digit_string; i++) {
double result = 0;
sscanf(result_digits[digit_string], "%lf", &result);
result_numbers[i] = result;
printf("Result: %lf\n", result);
}

int k = 0;
for (int i = 0; i <= (digit_string + operators_cnt); i++) {
result_string[i] = result_numbers[k];
i++;
result_string[i] = result_operators[k];
k++;
}

return result_string;
}

它不起作用。 sscanf 似乎有问题(它无法从字符串数组 (restul_digits) 转换字符串)。我应该怎么做才能让它发挥作用?

最佳答案

你可能想要:

sscanf(result_digits[i], "%lf", &result);

关于c - 将 C 字符串解析为数字和运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21673925/

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