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函数的作用是忽略输入的回车符。