Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,900 questions

51,831 answers

573 users

How to mask a number with stars except the first 6 and the last 4 digits in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* maskNumberWithStarsExceptFirstSixAndLastFour(char* cardNumber) {
    int cardNumberLength = strlen(cardNumber);
    int first6DigitsLength = 6;
    int last4DigitsLength = 4;
    
    char* first6Digits = malloc(first6DigitsLength + 1);
    strncpy(first6Digits, cardNumber, first6DigitsLength);
    first6Digits[first6DigitsLength] = '\0';
    
    char* last4Digits = malloc(last4DigitsLength + 1);
    strncpy(last4Digits, cardNumber + cardNumberLength - last4DigitsLength, last4DigitsLength);
    last4Digits[last4DigitsLength] = '\0';
    
    int requiredMaskLength = cardNumberLength - first6DigitsLength - last4DigitsLength;
    char* requiredMask = malloc(requiredMaskLength + 1);
    memset(requiredMask, '*', requiredMaskLength);
    requiredMask[requiredMaskLength] = '\0';
    
    char* maskedNumber = malloc(cardNumberLength + 1);
    sprintf(maskedNumber, "%s%s%s", first6Digits, requiredMask, last4Digits);
    
    free(first6Digits);
    free(last4Digits);
    free(requiredMask);
    
    return maskedNumber;
}

int main() {
    char* cardNumber = "9003125334656789";
    
    char* maskedNumber = maskNumberWithStarsExceptFirstSixAndLastFour(cardNumber);
    
    printf("%s\n", maskedNumber);
    
    free(maskedNumber);
    
    return 0;
}



/*
run:

900312******6789

*/

 



answered May 31, 2024 by avibootz
...