Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C에서 문자열에 특수 문자가 포함되어 있는지 확인하는 프로그램


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