📜  C++中的iscntrl()及其在查找控制字符的应用

📅  最后修改于: 2021-05-30 07:38:30             🧑  作者: Mango

在C++中,iscntrl()是用于字符串和字符处理的预定义函数。 cstring是字符串函数所需的头文件,而cctype是字符函数所需的头文件。控制字符是不能打印的字符,即它不占据显示器上的打印位置。

此函数用于检查参数是否包含任何控制字符。 C++中有许多类型的控制字符,例如:

  • 水平制表符-‘\ t’
  • 换行符-‘\ n’
  • 退格键-‘\ b’
  • 回车–’\ r’
  • 换页–’\ f’
  • 逃脱

句法

int iscntrl ( int c ); 

应用领域

  1. 给定一个字符串,我们需要找到该字符串中控制字符的数量。

    算法
    1.逐字符遍历给定的字符串字符直至其长度,检查该字符是否为控制字符。
    2.如果它是控制字符,则将计数器加1,否则遍历下一个字符。
    3.打印计数器的值。

    例子:

    Input : string='My name \n is \n Ayush'
    Output :2
    
    Input :string= 'This is written above \n This is written below'
    Output :1
    
    // CPP program to count control characters in a string
    #include 
    #include 
    #include 
    using namespace std;
       
    // function to calculate control characters
    void space(string& str)
    {
        int count = 0;
        int length = str.length();
        for (int i = 0; i < length; i++) {
            int c = str[i];
            if (iscntrl(c))
                count++;
        }
        cout << count;
    }
       
    // Driver Code
    int main()
    {
        string str = "My name \n is \n Ayush";
        space(str);
        return 0;
    } 
    

    输出:

    2
    
  2. 给定一个字符串,我们需要打印该字符串,直到在该字符串找到控制字符为止。
    算法
    1.遍历由字符的给定字符串字符和写入的字符的标准使用输出的putchar()。
    2.在字符串找到控制字符时,中断循环。
    3.从标准输出中打印最终字符串。
    例子:
    Input : string='My name is \n Ayush'
    Output :My name is
    
    Input :string= 'This is written above \n This is written below'
    Output :This is written above
    
    // CPP program to print a string until a control character
    #include 
    #include 
    #include 
    #include
    using namespace std;
      
    // function to print string until a control character
    int space(string& str)
    {
         int i=0;
      while (!iscntrl(str[i]))
      {
        putchar (str[i]);
        i++;
      }
      return 0;
    }
      
    // Driver Code
    int main()
    {
        string str = "My name is \n Ayush";
        space(str);
        return 0;
    }
    

    输出:

    My name is
    
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”