当前位置:C++技术网 > 资讯 > 用C++实现小写字符串转换为大写字符串程序代码

用C++实现小写字符串转换为大写字符串程序代码

更新时间:2015-10-06 14:34:59浏览次数:1+次

    在学习C++时,自己写了一个函数,使用string来实现小写字符串转换为大写字符串程序,小试牛刀了一把。分享一下。

    下面是运行截图:

   

    下面是我写的代码:

#include <iostream>
#include <cctype>//for toupper()
#include <string>//for string class to use
using namespace std;
void convert(string & ps);
int main()
{
    string str;
    cout<<"请输入一串字符(q表示退出): ";
    cin>>str;
    while("q"!=str)
    {   
        convert(str);
        cout<<"请输入一串字符(q表示退出): ";
        cin>>str;
    }
    cout<<endl;
    system("pause");//使程序结束时暂停画面
    return 0;
}
void convert(string & str)
{
    
    //string对象只能用成员函数size()来获取string对象的字符数,不能用strlen()(头文件为cstring.h)。strlen()是统计字符数组的字符数用的
    unsigned int i=0;
    char ch;
    cout<<"输入了"<<str.size()<<"个字符.";
    cout<<"\n转换成大写字母:";
    while(i<str.size())//并不是以空字符来表示字符串的结尾,因此不能用末尾是否是空字符来判定字符串结尾
    {
        //字符串对象可以像数组一样使用
        ch = toupper(str[i]);
        cout<<ch;
        i++;
    }
    cout<<endl;
    return;
}


    代码很简单,只是给不熟悉C++的一个小程序代码参考而已,勿喷。

    程序功能逻辑:

    在main函数中循环检测string变量的值是否为单个的字母q,以确定是否要结束程序。如果不为q,则不断的循环程序,可以实现多次转换。然后就将输入所得的string变量的值传入自己写的函数,在main函数的while循环中,控制程序的整体的流程,而准换流程则放在convert函数中执行和输出,这样避开逻辑混乱。

    在convert中,用变量i对string变量中的每一个字母进行遍历递增索引,与字符串的长度对比,以确定字符串遍历结束。这里可以看出可以将string当做字符数组一样使用,很方便。因为string重载了操作符[],所以可以这么使用。每遍历一个字母,都调用toupper函数将字母转换为大写字母。这里就是程序的核心了。

    你可以扩展下,就可以有神奇的效果。比如,在这里你可以对字母运算,按照一定的规则,比如对字符编码+1或者通过一个公式计算,得到一个新的编码,则输出的就是编码后的字母,这个就是加密的原理了。然后通过公式的逆计算,就是解密过程了。至于还有什么神奇的用途,自己去扩展吧。

    convert里的while循环,用于将字符串中的每一个字母转换为大写的。