Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình kiểm tra xem một chuỗi có chứa bất kỳ ký tự đặc biệt nào trong C hay không


Cho một chuỗi str [], nhiệm vụ là kiểm tra xem chuỗi có chứa ký tự đặc biệt nào không và nếu chuỗi có ký tự đặc biệt thì in “Chuỗi không được chấp nhận” else print “ Chuỗi được chấp nhận ”.

Các ký tự đặc biệt là những ký tự không phải là số hay chữ cái, tức là -! @ # $% ^ &* () + =- \] [‘; /., {} |:” <>? `~

Vì vậy, trong ngôn ngữ Lập trình C, chúng ta sẽ sử dụng phương pháp if-else để giải quyết vấn đề.

Đầu vào - str [] ={“tutorial-point”}

Đầu ra - chuỗi không được chấp nhận

Đầu vào - str [] ={“tutorialspoint”}

Đầu ra - Chuỗi được chấp nhận

Phương pháp tiếp cận được sử dụng bên dưới như sau để giải quyết vấn đề -

  • Duyệt qua toàn bộ chuỗi.

  • Sẽ tìm ký tự đặc biệt, nếu ký tự đặc biệt tồn tại trong chuỗi thì hãy in “Chuỗi không được chấp nhận và bị ngắt”. Khác, in chuỗi được chấp nhận.

Cách tiếp cận khác

Nếu chúng ta đang viết mã bằng java hoặc bất kỳ ngôn ngữ nào khác hỗ trợ khái niệm về biểu thức chính quy, thì thay vì cách tiếp cận if-else, chúng ta sẽ sử dụng các biểu thức chính quy để kiểm tra xem chúng có xuất hiện trong chuỗi đã cho hay không. Đây không chỉ là một cách tiếp cận đơn giản mà còn nhanh chóng.

Thuật toán

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

Ví dụ

#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;
}

Đầu ra

Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

String is not allowed