Password validator code, but segmentation error occurs.

Asked 2 years ago, Updated 2 years ago, 27 views

Use_Programming Language: c

Code:



#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int valid_char(char* a, int b);
int valid_num(char* a, int b);
int valid_space(char* a, int b);
int validoption(char* a);

int main() {
char* pw;
    printf("Input password :");
    scanf("%[^\n]s",pw);


    if (strlen(pw) < 5 || strlen(pw) > 10){
        printf("Invalid password");
        return 0;
    }
    if (validoption(pw) == 0)
        printf("Valid password");
    else printf("Invalid password");
    return 0;
}

int valid_char(char* a, int b) {
    char aa[10];
    sprintf(aa, "%s", a);
    int i;
    for (i = 0; i < b; i++) {
        if (aa[i] >= 33 && aa[i] <= 47)
            return 1;
        else if (aa[i] >= 58 && aa[i] <= 64)
            return 1;
        else if (aa[i] >= 123 && aa[i] < 126)
            return 1;
    }
    return -1;
}


int valid_num(char* a, int b) {
    char aa[10];
    sprintf(aa, "%s", a);
    int i;
    for (i = 0; i < b; i++) {
        if (aa[i] >= 48 && aa[i] <= 57)
            return 1;
        else return 0;
    }
    return -1;
}
int valid_space(char* a, int b) {
    char aa[10];
    sprintf(aa, "%s", a);
    int i;
    for (i = 0; i < b; i++) {
        if (aa[i] == 32)
            return 0;
    }
    return 1;

}
int validoption(char* a) {
    int sum = valid_char(a, strlen(a)) + valid_num(a, strlen(a)) + valid_space(a, strlen(a));
    if (sum == 3)
        return 0;
    else return -1;
}

More specifically, the following problems have occurred.

1) When I ran it in Dev C/C++, I was able to enter a string, but I didn't move on to the judgment.

2) When compiling in TCP-tryC, a segmentation error mentioned in the title occurred.

3) The compiler called glot.io allows input, but the result was always "Invalid password".

I don't know where the problem occurred, so I don't even know where to check the error through the ASSERT, so I'm posting here.

Please give us an answer.

c

2022-09-22 13:21

1 Answers

Try debugging with devc++.

https://www.youtube.com/watch?v=Hl3yQOa9N-o

Use it as an opportunity to learn how to use a debugger.

If you follow each line with a debugger, you'll know where to check.

I get to answer the same thing over and over again.


2022-09-22 13:21

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.