嘿伙计们,
我在互联网上看过很多关于此事的帖子,但我仍然不明白如何做到这一点。出于某种原因,我只能将我的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;就是这样。我很困惑。谢谢你的帮助!
答案 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)
。