---
# System prepended metadata

title: NTU C語言學習課程紀錄   練習題#1 - 字串的號碼
tags: [C語言練習]

---

# **字串的號碼**

程式題目:
給定一「僅由**空白**、**大小寫字母**及**阿拉伯數字**所組成」的字串，請將該字串「加總」成為該字串的「號碼」。
* 空白值規定為十進制下的 32（三十二）
* 阿拉伯數字為字面值（一位一位地加總）
* 而字母的值如下所示：A = a = 0, B = b = 1, C = c = 2, ..., Z = z = 25

舉例來説——“Ty 106a9t”（不含引號）：
* T = 19
* y = 24
* 空白 = 32
* a = 0
* t = 19
所以答案為：19 + 24 + 32 + 1 + 0 + 6 + 0 + 9 + 19 =110

輸入規則:
輸入僅有一行，為一字串：
* 該字串僅包含空白、大小寫字母及阿拉伯數字
* 該字串至少包含一個上述字元，且總長度不超過 150

輸出規則:
請根據題目敘述，將該字串轉換成其對應的**整數**後輸出。
* 保證該答案不會超過 2的31次方-1

輸入範例:
```
Ty 106a9t
```
輸出範例:
```
110
```
以下為我的程式碼:
```c

#include <stdio.h>
#include <ctype.h>  

int main() {
    char input[151];    
    int sum = 0;

    fgets(input, sizeof(input), stdin);

    for (int i = 0; input[i] != '\0'; i++) {
        char ch = input[i];

        if (ch == ' ') {
            
            sum += 32;
        }
        else if (ch >= '0' && ch <= '9') {
            sum += ch - '0';
        }
        else if (isalpha(ch)) {
            ch = toupper(ch);
            sum += ch - 'A';
        }
    }

    printf("%d\n", sum);

    return 0;
}