C++把string改成全小写

急求我是初中学信息学竞赛的希望给的程序不要太复杂难懂(《C++PrimerPlus》完全看不懂)自己写的函数是这样的:voidchangechar(string&x){f... 急求 我是初中学信息学竞赛的 希望给的程序不要太复杂难懂(《C++PrimerPlus》完全看不懂)
自己写的函数是这样的:
void changechar(string &x)
{
for (short i=0; i<x.length(); i++)
if (x[i]<'a')
x[i]+=('a'-'A');
}
但是完全不起作用
展开
 我来答
泡影果果616
2015-10-24 · 知道合伙人软件行家
泡影果果616
知道合伙人软件行家
采纳数:2005 获赞数:71338
软件技术从上学的时候就在研究,虽没最强大脑那般无敌,但依靠后天的勤奋学习,相信可以很专业的帮助更多人

向TA提问 私信TA
展开全部
C++把string改成全小写,循环遍历字符串,然后判断asc码进行转换,非字母不转换
#include <string>
#include<iostream>
using namespace std;

int main()
{
string str= "abcdADcdeFDde!@234 ";
std::cout << str << std::endl;
for(int i = 0; i < str.length(); ++i)
{
if(str[i] >= 'a' && str[i] <= 'z')
{
str[i] = str[i] - 32;
}
else if(str[i] >= 'A' && str[i] <= 'Z')
{
str[i] = str[i] + 32;
}
else
{
continue;
}
}
std::cout << str << std::endl;
return 0;
}
diwayou
2010-03-16 · 超过18用户采纳过TA的回答
知道答主
回答量:55
采纳率:100%
帮助的人:45.2万
展开全部
#include <algorithm>
#include <cctype>
void toLowerCase(string& str)
{
// transform in <algorithm>
transform(str.begin(),
str.end(),
str.begin(),
tolower // in <cctype>
);
}
或者
void toLowerCase(string& str)
{
for (int i = 0; i < str.length(); ++i)
str[i] = tolower(str[i]);
}
或者(你们不让用语言提供的函数吗?)
void toLowerCase(string& str)
{
for (int i = 0; i < str.length(); ++i)
if (str[i] >= 'A' && str[i] <= 'Z')
str[i] += ('a' - 'A')
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式