C/C++函数与算法速查宝典
上QQ阅读APP看书,第一时间看更新

1.2 字符转换函数

字符转换函数包括将大写英文字母转换为小写英文字母的函数、将小写英文字母转换为大写英文字母的函数、将字符转换为ASCII码的函数。

1.2.1 tolower函数──将大写英文字母转换为小写英文字母

1.函数原型
int tolower(int ch);
2.函数功能

如果ch是’A’~’Z’的大写英文字母,则tolower函数会将ch转换为’a’~’z’的小写英文字母。

3.函数参数

参数ch:可以是带单引号的字符,也可以是整型数字。

4.函数的返回值

如果ch是大写英文字母,则返回小写英文字母;如果ch不是大写英文字母,则返回ch。

5.函数范例
/********************************************
*范例编号:01_12
*范例说明:将大写英文字母转换为小写英文字母
*********************************************/
01    #include <stdio.h>
02    #include <ctype.h>
03    #include <stdlib.h>
04    #define MAXSIZE 100
05    void main()
06    {
07         char str[]=”Artificial Intelligence and Big Data are the most popular direction for
08    computer majors.\n”,str2[MAXSIZE];
09         int i,j;
10         for(i=0,j=0;str[i]!=’\0’;i++)
11         {
12              if(isalpha(str[i]))
13              {
14                   if(isupper(str[i]))
15                   {
16                        str2[j++]=tolower(str[i]);
17                   }
18                   else
19                   {
20                        str2[j++]=str[i];
21                   }
22              }
23              else
24              {
25                   str2[j++]=str[i];
26              }
27    
28         }
29         str2[j]=’\0’;
30         printf(“源字符串:%s”,str);
31         printf(“转换后的字符串:%s”,str2);
32         system(“pause”);
33    }

该函数范例的运行结果如图1-12所示。

图1-12 函数范例的运行结果

6.函数解析

(1)参数ch的取值合法性与isalph函数的参数取值相同。

(2)如果ch是大写英文字母,则tolower函数的返回值是小写英文字母;否则,不进行转换,直接将原字符返回。因此,该函数可以直接作为putchar函数的参数。

1.2.2 toupper函数──将小写英文字母转换为大写英文字母

1.函数原型
int toupper(int ch);
2.函数功能

toupper函数的功能是将小写英文字母’a’~’z’转换为大写英文字母’A’~’Z’。

3.函数参数

参数ch:可以是带单引号的字符,也可以是整型数字。

4.函数的返回值

如果ch是小写英文字母,则返回大写英文字母;如果ch不是小写英文字母,则返回ch。

5.函数范例
/********************************************
*范例编号:01_13
*范例说明:将小写英文字母转换为大写英文字母
*********************************************/
01    #include <stdio.h>
02    #include <ctype.h>
03    #include <stdlib.h>
04    #define MAXSIZE 100
05    void main()
06    {
07         char str[]=”Hello,C Program Language.\n”
08                        “Welcome to C Language World!\n”,str2[MAXSIZE];
09         int i,j;
10         for(i=0,j=0;str[i]!=’\0’;)
11         {
12              if(isalpha(str[i]))
13              {
14                   if(isupper(str[i]))
15                        str2[j++]=str[i++];
16                   else if(islower(str[i]))
17                        str2[j++]=toupper(str[i++]);
18              }
19              else
20                   str2[j++]=str[i++];
21         }
22         str2[j]=’\0’;
23         printf(“源字符串:%s”,str);
24         printf(“转换后的字符串:%s”,str2);
25         system(“pause”);
26    }

该函数范例的运行结果如图1-13所示。

图1-13 函数范例的运行结果

6.函数解析

(1)参数ch的取值合法性与isalpha函数的参数取值相同。

(2)与tolower函数一样,因为toupper函数具有返回值,所以也可以作为putchar函数的参数。

1.2.3 toascii函数──将字符转换为ASCII码

1.函数原型
int toascii(int ch);
2.函数功能

toascii函数的功能是将字符转换为相应的ASCII码。

3.函数参数

参数ch:是字符数据。

4.函数的返回值

返回值是字符ch的ASCII码。转换后的ASCII码的范围是0~127,低7位以外的数位将被清除。

5.函数范例
/********************************************
*范例编号:01_14
*范例说明:将字符转换为对应的ASCII码
*********************************************/
01    #include <stdio.h>
02    #include <ctype.h>
03    void main()
04    {
05         char ch;
06         while(1)
07         {
08              printf(“请输入一个字符:”);
09              ch=getchar();
10              if(ch==’q’)
11                   break;
12              if(ch!=10)
13                   printf(“ASCII码为%d\n”,toascii(ch));
14              getchar();
15         }
16    }

该函数范例的运行结果如图1-14所示。

图1-14 函数范例的运行结果

6.函数解析

(1)参数ch只能是单个字符数据,如’A’’a’等。如果输入多个字符,则只将第一个字符转换为对应的ASCII码。

(2)范例程序中第2个getchar函数的作用是忽略输入的回车符。