有關字串的一些好用的小函式

weixin_45664948發表於2020-11-11

最近老是會做到跟字串有關的內容,把這些用上的話,判斷還有轉換啥的就不愁了

<ctype.h>

<ctype.h> 標頭檔案中包含了一系列與字元處理有關的函式,這些函式有一個共同特點:它們的引數都是 int 型別。例如:

  • int isalnum ( int c );
  • int islower ( int c );
  • int isupper ( int c );
  • int tolower ( int c );
  • int toupper ( int c );
  • 字元分類函式
    isalnum()判斷一個字元是否是字母或數字
    isalpha()判斷一個字元是否是字母
    isblank()判斷一個字元是否是空白符
    iscntrl()判斷一個字元是否是控制字元
    isdigit()判斷一個字元是否是十進位制數字
    isgraph()判斷一個字元是否帶有圖形
    islower()判斷一個字元是否是小寫字母
    isprint()判斷一個字元是否是可列印字元
    ispunct()判斷一個字元是否是標點符號
    isspace()判斷一個字元是否是空白符
    isupper()判斷一個字元是否是大寫字母
    isxdigit()判斷一個字元是否是十六進位制數字
     
    字元轉換函式
    tolower()將大寫字母轉換為小寫字母
    toupper()將小寫字母轉換為大寫字母

islower() 函式用來檢測一個字元是否是小寫字母。

判斷字串中的字元是否是小寫字母,如果是,那麼轉換為大寫字母。

#include <stdio.h>
#include <ctype.h>
int main ()
{
    int i=0;
    char str[]="c c++ java python.\n";
    char c;
    while (str[i])
    {
        c=str[i];
        if (islower(c)) c=toupper(c);
        putchar (c);
        i++;
    }
    return 0;
}

 isalnum() 函式用來檢測一個字元是否是字母或者十進位制數字。

如果僅僅檢測一個字元是否是字母,可以使用 isalpha() 函式;如果僅僅檢測一個字元是否是十進位制數字,可以使用 isdigit() 函式。

如果一個字元被 isalpha() 或者 isdigit() 檢測後返回“真”,那麼它被 isalnum() 檢測後也一定會返回“真”。

統計一個字串中有多少個字母或數字。

#include <stdio.h>
#include <ctype.h>
int main ()
{
    int i = 0, n = 0;
    char str[] = "*ab%c123_ABC-.";
    while(str[i])
    {
        if( isalnum(str[i]) ) n++;
        i++;
    }
    printf("There are %d characters in str is alphanumeric.\n", n);
    return 0;
}

 isupper() 函式用來檢測一個字元是否是大寫字母。

判斷字串中的字元是否是大寫字母,如果是,那麼轉換為小寫字母。

#include <stdio.h>
#include <ctype.h>
int main ()
{
    int i = 0;
    char str[] = "C C++ Java Python.\n";
    char c;
    while(str[i])
    {
        c = str[i];
        if(isupper(c)) c = tolower(c);
        putchar(c);
        i++;
    }
    return 0;
}

 

相關文章