【发布时间】:2014-02-26 01:11:12
【问题描述】:
我还有一个问题,我想在每个大写字母前加一个_,它会被转换为小写,而且第一个字母不能是大写!我不知道该怎么做...:{示例:
输入:loLollL,输出:lo_loll_l 我也希望它倒退:输入:lo_loll_l 输出:loLollL
代码在这里:
#include <iostream>
#include <algorithm>
using namespace std;
int main ()
{
const int max = 100;
string slovo;
int pocet_r;
cout << "Zadaj pocet uloh:" << endl;
cin >> pocet_r;
if(pocet_r >= 1 && pocet_r <=100)
{
// funkcia na zabezpecenie minimalneho poctu chars
for (int i = 0; i <pocet_r; i++)
{
cout << "Uloha " << i+1 << ":" << endl;
cin >> slovo;
if(slovo.size() > max)
{
cout << "slovo musi mat minimalne 1 a maximalne 100 znakov" << endl;
}
while( slovo.size() > max)
{
cin >> slovo;
}
for (int i=0; i <= slovo.size(); i++)
{
int s = slovo[i];
while (s > 'A' && s <= 'Z')
{
if(s<='Z' && s>='A'){
return s-('Z'-'_z');
}else{
cout << "chyba";
}
}
}
cout << slovo[i] << endl;
}
}else{
cout << "Minimalne 1 a maximalne 100 uloh" << endl;
}
system("pause");
}
编辑>
for (int i=0; i <= slovo.size(); i++)
{
while (slovo[i] >= 'A' && slovo[i] <= 'Z')
{
string s = transform(slovo[i]);
cout << s << endl;
s = untransform(s);
cout << s << endl;
}
}
【问题讨论】:
-
1.反向结果不是唯一定义的,即使
_在原始字符串中被禁止,lo_loll_l也可以转换为loLollL或LoLollL。 2.'_z'不是字符,这是错字吗? -
3.为什么在代码中间从
main返回?这将结束程序。 4. 变量名和输出文本看不懂。如果您将它们全部翻译成英文,这会更容易。 5. 在某些时候你应该分配给新的字符串,你永远不会那样做。 -
我更新了我的代码应该做什么,字符串不能以大写字母开头
-
我正在学习 C++,所以有什么问题,请告诉我,告诉我它应该是什么样子,请……我处理了几个小时:(
-
既然你没有说你的代码有什么问题,我投票结束作为Wrong answer for code to convert between Java camel case and C++ underscore identifiers的副本,这应该会引导你得到一个正确的答案。