Problem:
Score : 200 points

Problem Statement

Given are strings S and T. Consider changing S to T by repeating the operation below. Find the minimum number of operations required to do so.

Operation: Choose one character of S and replace it with a different character.

Constraints

S and T have lengths between 1 and 2\times 10^5 (inclusive).

S and T consists of lowercase English letters.

S and T have equal lengths.

Input

Input is given from Standard Input in the following format:

S
T

Output

Print the answer.

Sample Input 1

cupofcoffee
cupofhottea

Sample Output 1

4

We can achieve the objective in four operations, such as the following:

First, replace the sixth character c with h.

Second, replace the eighth character f with t.

Third, replace the ninth character f with t.

Fourth, replace the eleventh character e with a.

Sample Input 2

abcde
bcdea

Sample Output 2

5

Sample Input 3

apple
apple

Sample Output 3

0

No operations may be needed to achieve the objective.

Solution in C (GCC 9.2.1) (judge verdict: Wrong Answer)

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

int operation(char* S, char* T){
    int cnt = 0;
    for (int i = 0; S[i]!='\0'; i++){
        if (strncmp(&S[i], &T[i], sizeof(char))==0) continue;
        else cnt++;
    }
    return cnt;
}

int main() {
    char S[20000]; 
    char T[20000]; 
    if ((fgets (S, sizeof(S), stdin)!=NULL)&&(fgets (T, sizeof(S), stdin)!=NULL)){
        if ((sizeof(S)<1) || (sizeof(S)>20000) || (sizeof(T)<1) || (sizeof(T)>20000) || sizeof(S)!=sizeof(T)) return -1;
        for (int i = 0; S[i]!='\0'; i++){
            if (isupper(S[i]) || isupper(T[i])) return -1;
        }
    printf("%d\n", operation(S, T));
    }
}