문자열 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