C언어 문자열에 중복 문자 있는지 확인

(C언어 문자열에서 중복 문자가 있는지 확인에서 넘어옴)

1 개요[ | ]

Check the duplicate in string
문자열에서 중복 문자가 있는지 확인

2 예시 1[ | ]

C
CPU
0.0s
MEM
18M
0.0s
Copy
#include <stdio.h>
#include <string.h>

int allUnique(char *str) {
    int i, j;
    char *p = str;
    int l = strlen(str);

    for(i = 0; i < l - 1; i++) {
        for(j = i + 1; j < l; j++) {
            if(p[i] == p[j]) return 0; 
        }
    }
    return 1; 
}

int main() {
    printf("%d\n", allUnique("abcd")); // 1
    printf("%d\n", allUnique("abcc")); // 0
}
1
0

3 예시 2[ | ]

C
Copy
#include <stdio.h>
#include <stdbool.h>
#include <string.h>

bool allUnique(const char *str) {
    if (str == NULL) {
        return false;
    }
    bool isCharPresent[256] = {0};
    int length = strlen(str);
    for (int i = 0; i < length; i++) {
        unsigned char ch = str[i];
        if (isCharPresent[ch]) {
            return false;
        }
        isCharPresent[ch] = true;
    }
    return true;
}

int main() {
    printf("%d\n", allUnique("abcd")); // 1
    printf("%d\n", allUnique("abcc")); // 0
}
Loading

4 같이 보기[ | ]

  • C, C++ 주석
    C에도 적용되는 주석 문법이라면, "C와 C++ 주석"으로 제목을 옮기면 어떨까요? Ykhwong
  • C, C++ 주석
    @Ykhwong 네네. 좋은 의견 입니다. 변경 부탁드려요. John Jeong
  • C, C++ 주석
    'C스타일 주석'이라는 제목도 괜찮겠네요.J Jmnote
  • C, C++ 주석
    'C, C++ 주석' 형태로 최종 가도록 하겠습니다. C와 C++ 까지의 현재 범위를 명확히 하려 합니다. John Jeong
  • C언어 연결리스트 구현
    마지막에 메모리 해지는 어떤식으로 해야되나요?? 돌멩이
  • C언어 연결리스트 구현
    @돌맹이 head 가 널까지 가는거 보시고 코드가 아름 답진 않지만 대략 아래 방법처럼 하나씩 삭제 하시면 될 것 같습니다. void deleteNode(nodeType *head) { nodeType *ptr = head, *ptr2 = NULL; while(ptr- John Jeong
  • C언어 연결리스트 구현
    답변 감사합니다! 돌멩이