本實例讀取一個八進制字符串,通過逐字符處理將其轉換為十進制整數輸出。
n = n * 8 + (s[i] - '0') 累加。// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 0, i = 0;
char s[20];
printf("請輸入一個8進制數:\n");
gets(s);
while (s[i] != '\0') {
n = n * 8 + s[i] - '0';
i++;
}
printf("剛輸入的8進制數轉化為十進制為\n%d\n", n);
return 0;
}
請輸入一個8進制數:
16
剛輸入的8進制數轉化為十進制為
14
gets() 為 fgets()。strtol(s, NULL, 8) 直接轉換。