C語言檢查字串是否包含特殊字元的程式


給定一個字串 str[],任務是檢查該字串是否包含任何特殊字元,如果字串包含特殊字元,則列印“字串不被接受”,否則列印“字串被接受”。

特殊字元是指既不是數字也不是字母的字元,例如:− !@#$%^&*()+=-\][‘;/.,{}|:”<>?`~

因此,在 C 程式語言中,我們將使用 if-else 方法來解決問題。

輸入 − str[] = {“tutorials-point”}

輸出 − 字串不被接受

輸入 − str[] = {“tutorialspoint”}

輸出 − 字串被接受

下面使用的解決問題的方法如下:

  • 遍歷整個字串。

  • 查詢特殊字元,如果字串中存在特殊字元,則列印“字串不被接受並中斷”。否則,列印字串被接受。

其他方法

如果我們使用 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
");          flag = 1;          break;       }    }    //if there is no special charcter    if (flag == 0){       printf("string is accepted
");    }    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

更新於: 2020年8月13日

6K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.