LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1322|回复: 3

标准的C++ string类里有没有把string变为全大写的函数

[复制链接]
发表于 2005-3-4 22:18:57 | 显示全部楼层 |阅读模式
找了半天没有找到,怀疑是不是没有啊,还是要自己写的? :ask
发表于 2005-3-4 22:36:02 | 显示全部楼层
确实没有不过可以使用
transform(s.begin(), s.end(), s.begin(), toupper);

algorithm 文件中的一个算法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-10 20:00:45 | 显示全部楼层
哦,那换一个问题,我能不能把一个文件中的字符按照大写字母输出给一个string对象?
我试了一下
    string token;
    ifstream fin("Test_0.sp",ios::in);
    fin.setf(ios::uppercase);
    while (fin>>token) {
        cout<<token<<endl;
    }
    fin.close();
    return 0;

好像不行
回复 支持 反对

使用道具 举报

发表于 2005-3-19 17:01:02 | 显示全部楼层
toupper-Convert a character to uppercase

Synopsis

        #include <ctype.h>

        cc = toupper(c);

        int cc;  /* converted character */
        int c;         /* character to convert */

Description

        The toupper function is the reverse of the  tolower  function.

        You can use either characters or integers as arguments, but the
        macro is defined only over the integer range from -1 to 255.  The
        function, however, will return a result for values above 255, but
        the results are not necessarily correct and cannot be relied upon.
        The reason -1 is included as a valid argument is to avoid a
        nonsensical result if you feed the EOF value to one of the macros
        or functions.  EOF can be returned by the  getchar  function and
        other I/O functions, and if you pass it to any of the character
        test functions, the return value will be 0.

        If you include the file ctype.h as shown above, this function is
        actually defined as a macro and produces inline code to perform
        the conversion.  Without the ctype.h file, it is an actual
        function resolved in the standard library.  If you want to use the
        function version but must include the file ctype.h for some other
        reason, use an #undef statement to undefine the macros after
        including the ctype.h file.

            #undef toupper


Example

        /*
         * The following program echoes each input
         * line in upper case.
         */
        #include <stdio.h>
        #include <ctype.h>

        void main(void)
        {
            char b[256],*p;

            while(gets(b) != NULL)
            {
                for (p = b; *p != '0'; p++)
                {
                    *p = toupper(*p);
                }
                puts(b);
            }
        }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表