如何大写char数组c ++

时间:2014-01-29 07:02:53

标签: c++ arrays size converter

嘿伙计们,

我在互联网上看过很多关于此事的帖子,但我仍然不明白如何做到这一点。出于某种原因,我只能将我的char数组大写,直到有空格......

    #include "stdafx.h"
    #include <iostream>
    #include <string>


    std::string caps (char[]);


    int main() { 
        const int MAXLEN = 256;     
        char chaine[ MAXLEN ] = "";  

        //Here i am inputting my list of char into my array
        std::cout << "Chaîne ? ";
        std::cin >> chaine; 

        //Calling my caps function
        caps( chaine );

        // results
        std::cout << "Résultat: " << chaine << std::endl;

        _gettch();
        return 0;


    }


    std::string caps (char chaine []){


    std::string check=chaine;

    for (int i=0; i<=check.length(); i++){  //I added check.length() because it's the only way I know to check for the length of the array


    chaine[i]=toupper(chaine[i]);

    }

    return chaine;

    }

所以,让我说我写了#34;嘿你&#34;输出将是&#34; HEY&#34;就是这样。我很困惑。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

将您的输入接收更改为:

    std::string chaine;
    std::cout << "Chaîne ? ";
    std::getline(std::cin, chaine);

    caps(chaine);             // <-- pass the name by const reference

这不会跳过空格。既然您已经std::string了,而不是在caps内创建另一个字符串,请按引用传递输入,即将std::string caps (char chaine [])更改为std::string caps (const std::string &chaine)