在C中使用toupper()
时间:2020-02-23 14:32:07 来源:igfitidea点击:
在本文中,我们将研究如何在C语言中使用toupper()函数。
这是一个非常简单的函数,它将字符转换为大写。
C语言中toupper()的基本语法
该函数类似于isdigit()函数,存在于<ctype.h>头文件中,因此我们必须首先包含此文件。
此函数以单个字符作为参数,并返回一个整数。
#include <ctype.h> int toupper(int ch);
其中请注意参数类型是一个" int"。
这是因为可以将字符类型转换为整数,以便该函数能够使用ASCII值。
如果字符是小写字母,例如" a"," b",则toupper()函数将返回该值并将其转换为相应的大写字母,并返回该ASCII值。
否则,它将仅返回相同的大写字符串。
请注意,如果输入参数无法转换为大写字母,可能会发生这种情况!
现在,让我们看一个用C语言编写的简单示例。
使用toupper()函数–一个示例
下面的程序将字符串作为输入,并将所有小写字母转换为大写字母
例如,如果我们传递字符串" theitroad"作为输入,我们将得到的输出为" theitroad",其中仅包含大写字母。
请注意,这还包括原始字符串中的所有大写字符!
#include <stdio.h> #include <string.h> #include <ctype.h> int main() { char input[] = "theitroad"; char output[256]; //Get the input size int size = strlen(input); for (int i=0; i<size; i++) //Store the upper case letters to output[i] output[i] = toupper(input[i]); printf("Input: %s\n", input); printf("Output: %s", output); return 0; }
输出
Input: theitroad Output: theitroad
确实,如您所见,输出字符串仅包含大写字母!
某些输入的不确定行为
在toupper()函数尝试进行转换时,最好将值转换为大写字母,但有时是不可能的。
根据Linux标准,如果该值超出无符号字符值(256)的限制,或者该值是" EOF",则行为是不确定的。
//Undefined behavior! printf("%c\n", toupper(EOF)); pritnf("%c\n", toupper(1234));
因此,在将输入传递给toupper()之前,请务必小心并检查输入内容!