020-29133788
    资 讯
    您的位置:首页 >> 资 讯 >> 软件应用 >> 编程开发 >> 正文
    大小写转换指令 strlwr()、strupr()说明及使用范例

    点击:   发布日期:2013-01-25

    本文来自 www.020fix.com
    大小写转换指令 strlwr()、strupr()说明及使用范例
    (1)strlwr()

    1.指令说明:

    将字串中的大写字元,转换成小写字元

    原型为:
    char* strlwr( char *string );

    参数说明:
    string: 要转换的字串位置

    输出:
    执行完后,会将string的位置作输出

    2.使用范例:
    ex.
    void main()
    {
            char        szTemp[] = "123abcdABCD";

            printf("\n转换前:%s\n", szTemp);

            strlwr(szTemp);

            printf("\n转换后:%s\n", szTemp);

            system("pause");
    }

    输出:

    转换前:123abcdABCD
    转换后:123abcdabcd

    3.实作:

    // 实作strlwr指令
    // string ==> 要转换的字串
    char* MyStrlwr(char* string)
    {
            char*        p = NULL;

            // 防止输入NULL,而产生错误
            if(string == NULL)
            {
                    return NULL;
            }

            p = string;

            // 转换字元,直到遇到字串结尾
            while(*p != '\0')
            {
                    // 若遇到大写的英文字母
                    // (大写的 'A' ~ 'Z' 的ASCII码为 65 ~ 90)
                    if(*p >= 65 && *p <= 90)
                    {
                            // 将大写字母转为小写
                            // 由于大写字母和小写字母相差32,因此+32,就可转成小写
                            *p += 32;
                    }

                    // 指向下一个字元
                    p++;
            }

            return string;
    }

    MSDN对strlwr指令的说明

    网路上找的ASCII码对照表,仅供参考

    (2)strupr()

    1.指令说明:

    将字串中的小写字元,转换成大写字元

    原型为:
    char* strupr( char *string );

    参数说明:
    string: 要转换的字串位置

    输出:
    执行完后,会将string的位置作输出

    2.使用范例:
    ex.
    void main()
    {
            char        szTemp[] = "123abcdABCD";

            printf("\n转换前:%s\n", szTemp);

            strupr(szTemp);

            printf("\n转换后:%s\n", szTemp);

            system("pause");
    }

    输出:

    转换前:123abcdABCD
    转换后:123ABCDABCD

    3.实作:

    // 实作strupr指令
    // string ==> 要转换的字串
    char* MyStrupr(char* string)
    {
            char*        p = NULL;

            // 防止输入NULL,而产生错误
            if(string == NULL)
            {
                    return NULL;
            }

            p = string;

            // 转换字元,直到遇到字串结尾
            while(*p != '\0')
            {
                    // 若遇到小写的英文字母
                    // (小写的 'a' ~ 'z' 的ASCII码为 97 ~ 122)
                    if(*p >= 97 && *p <= 122)
                    {
                            // 将小写字母转为大写
                            // 由于小写字母和大写字母相差32,因此 -32,就可转成大写
                            *p -= 32;
                    }

                    // 指向下一个字元
                    p++;
            }

            return string;
    }