문자열 str[]이 주어지면 작업은 문자열에 특수 문자가 포함되어 있는지 확인하고 문자열에 특수 문자가 있으면 "문자열이 허용되지 않습니다"를 인쇄합니다. 그렇지 않으면 인쇄 " 문자열이 허용됩니다.”
특수 문자는 숫자도 알파벳도 아닌 문자입니다. 즉 − !@#$%^&*()+=-\][';/.,{}|:”<>?`~
따라서 C 프로그래밍 언어에서는 if-else 접근 방식을 사용하여 문제를 해결합니다.
입력 − str[] ={“튜토리얼 포인트”}
출력 - 문자열은 허용되지 않습니다.
입력 − str[] ={“튜토리얼 포인트”}
출력 − 문자열이 허용됩니다.
아래에 사용된 접근 방식은 문제를 해결하기 위해 다음과 같습니다 -
-
전체 문자열을 탐색합니다.
-
특수 문자를 찾고 특수 문자가 문자열에 존재하면 "문자열이 허용되지 않고 중단됩니다"를 인쇄합니다. 그렇지 않으면 문자열을 인쇄할 수 있습니다.
기타 접근 방식
Java 또는 정규식의 개념을 지원하는 다른 언어로 코딩하는 경우 if-else 접근 대신 정규식을 사용하여 주어진 문자열에 존재하는지 여부를 확인합니다. 이것은 단순한 접근 방식일 뿐만 아니라 빠른 접근 방식입니다.
알고리즘
Start In function int special_character(char str[], int n) Step 1→ initialize i and flag and set flag as 0 Step 2→ Loop For i = 0 and i < n and ++i If(str[i] == '!' || str[i] == '@' || str[i] == '#' || str[i] == '$' || str[i] == '%' || str[i] == '^' || str[i] == '&' || str[i] == '*' || str[i] == '(' || str[i] == ')' || str[i] == '-' || str[i] == '{' || str[i] == '}' || str[i] == '[' || str[i] == ']' || str[i] == ':' || str[i] == ';' || str[i] == '"' || str[i] == '\'' || str[i] == '<' || str[i] == '>' || str[i] == '.' || str[i] == '/' || str[i] == '?' || str[i] == '~' || str[i] == '`' then Print "String is not allowed” Set flag as 1 break Step 3→ If flag == 0 then, Print "string is accepted” In function int main(int argc, char const *argv[]) Step 1→ Declare and set str[] as {"Tutorials-point"} Step 2→ set n as strlen(str) Step 3→ special_character(str, n) Stop
예시
#include <stdio.h> #include <string.h> int special_character(char str[], int n){ int i, flag = 0; for (i = 0; i < n; ++i){ //checking each character of the string for special character. if(str[i] == '!' || str[i] == '@' || str[i] == '#' || str[i] == '$' || str[i] == '%' || str[i] == '^' || str[i] == '&' || str[i] == '*' || str[i] == '(' || str[i] == ')' || str[i] == '-' || str[i] == '{' || str[i] == '}' || str[i] == '[' || str[i] == ']' || str[i] == ':' || str[i] == ';' || str[i] == '"' || str[i] == '\'' || str[i] == '<' || str[i] == '>' || str[i] == '.' || str[i] == '/' || str[i] == '?' || str[i] == '~' || str[i] == '`' ){ printf("String is not allowed\n"); flag = 1; break; } } //if there is no special charcter if (flag == 0){ printf("string is accepted\n"); } return 0; } int main(int argc, char const *argv[]){ char str[] = {"Tutorials-point"}; int n = strlen(str); special_character(str, n); return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
String is not allowed