【发布时间】:2016-05-07 01:04:47
【问题描述】:
我需要解决以下练习:
“编写一个程序,获取一个八进制整数字符串的第一个字符并将其写入另一个先前为空的字符串,然后使用函数
sscanf和sprintf以十进制显示第二个字符串的内容。 例如,如果用户输入 12(八进制),系统必须显示 10(十进制)。”
在我的scanf 之后,数组seconda 是="12325"。
问题是我不知道如何理解这个字符串是八进制数以及如何使用sprintf 将其转换为十进制数。
这是我当前的代码:
#include <stdio.h>
int main(void) {
char prima[] = "12325dsdfa";
char secodna[500];
sscanf_s(prima, "%[0123456789]o", secodna, 500);
}
【问题讨论】:
-
从字符串 -> int -> 字符串...
-
unsigned oct_value; sscanf_s(prima, "%o", &oct_value); sprintf(secodna, "%u", oct_value); -
@BLUEPIXY 如果你想使用 sprintf_s?