C++ 函数问题 为什么我的代码不能把空格之后的小写字母转换为大写
#include<iostream>#include<string>usingnamespacestd;voidStrSpaceToHyphen(string&str){...
#include <iostream>
#include <string>
using namespace std;
void StrSpaceToHyphen(string& str) {
unsigned int i = 0;
for (i = 0; i < str.length(); ++i) {
if(i == 0){
toupper(str.at(i));
}
if (str.at(i) == ' ') {
toupper(str.at(i+1));
}
}
return;
}
int main() {
string userStr;
cout << "Enter string with spaces: " << endl;
getline(cin, userStr);
StrSpaceToHyphen(userStr);
cout << "String with hyphens: ";
cout << userStr << endl;
return 0;
}
请仔细看我的代码
比如 用户输入 a little boy
我的 目的是 转换为 A Little Boy
但是我目前的代码是 A little boy
我想知道我的代码哪里问题导致 空格之后的字母不能转换为大写。 展开
#include <string>
using namespace std;
void StrSpaceToHyphen(string& str) {
unsigned int i = 0;
for (i = 0; i < str.length(); ++i) {
if(i == 0){
toupper(str.at(i));
}
if (str.at(i) == ' ') {
toupper(str.at(i+1));
}
}
return;
}
int main() {
string userStr;
cout << "Enter string with spaces: " << endl;
getline(cin, userStr);
StrSpaceToHyphen(userStr);
cout << "String with hyphens: ";
cout << userStr << endl;
return 0;
}
请仔细看我的代码
比如 用户输入 a little boy
我的 目的是 转换为 A Little Boy
但是我目前的代码是 A little boy
我想知道我的代码哪里问题导致 空格之后的字母不能转换为大写。 展开
2个回答
推荐于2016-02-29
展开全部
你的程序根本转不了大小写啊,而且str.at(i+1)这是要溢出的节奏啊。
这是我写的。
#include <iostream>
#include <string>
using namespace std;
void StrSpaceToHyphen(string& str) {
unsigned int i = 0;
for (i = 0; i < str.length(); ++i) {
//if(i == 0)
{
str[i] = toupper(str.at(i));
}
//if (str.at(i) == ) {
// toupper(str.at(i+1));
//}
}
return;
}
int main() {
string userStr;
cout << "Enter string with spaces: " << endl;
getline(cin, userStr);
StrSpaceToHyphen(userStr);
cout << "String with hyphens: ";
cout << userStr << endl;
return 0;
}
这是我写的。
#include <iostream>
#include <string>
using namespace std;
void StrSpaceToHyphen(string& str) {
unsigned int i = 0;
for (i = 0; i < str.length(); ++i) {
//if(i == 0)
{
str[i] = toupper(str.at(i));
}
//if (str.at(i) == ) {
// toupper(str.at(i+1));
//}
}
return;
}
int main() {
string userStr;
cout << "Enter string with spaces: " << endl;
getline(cin, userStr);
StrSpaceToHyphen(userStr);
cout << "String with hyphens: ";
cout << userStr << endl;
return 0;
}
展开全部
代码修改:
void StrSpaceToHyphen(string& str) {
unsigned int i = 0;
for (i = 0; i < str.length(); ++i)
{
toupper(str.at(i));
}
return;
}
void StrSpaceToHyphen(string& str) {
unsigned int i = 0;
for (i = 0; i < str.length(); ++i)
{
toupper(str.at(i));
}
return;
}
更多追问追答
追问
请仔细看我的代码
比如 用户输入 a little boy
我的 目的是 转换给 A Little Boy
但是我目前的代码是 A little boy
我想知道我的代码哪里问题导致 空格之后的字母不能转换为大写。
追答
现在可以了,代码如下:
void StrSpaceToHyphen(string& str) {
unsigned int i = 0;
for (i = 0; i < str.length(); ++i)
{
str.at(i)=toupper(str.at(i));
}
return;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询