大写转化为小写

RocheFoo 2007-10-15 09:43:43
输入:任一字符串12sfdA45
输出:12sfda45
功能:把字符串中的大写字符转化为小写。
要求:代码不超过10行。
大家写写看吧
...全文
2211 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
可见一斑 2012-08-07
  • 打赏
  • 举报
回复

transform(istream_iterator<char>(cin), istream_iterator<char>(), ostream_iterator<char>(cout, ""), ::tolower);


一行解决问题
Afterwards_ 2012-08-07
  • 打赏
  • 举报
回复
同样不错[Quote=引用 12 楼 的回复:]

C/C++ code

char *mytolower(char *upp)
{
for (; *upp; upp++)
*upp = *upp >= 'A' && *upp <= 'Z' ?
*upp + 'a' - 'A' :
*upp ;
retur……
[/Quote]
Afterwards_ 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

C/C++ code

char *mytolower(char *p)
{
char *p2 = p;
for (; *p2; p2++)
*p2 = *p2 >= 'A' && *p2 <= 'Z' ?
*p2 + 'a' - 'A' :
*p2 ;
……
[/Quote]

15楼GOOD
yequnanren 2012-08-07
  • 打赏
  • 举报
回复
void str_up_2_low(char *pszSrc, char *pszDest)
{
if (!pszSrc || !*pszSrc || !pszDest)
{
return;
}

do
{
*pszDest++ = ('A' <= *pszSrc && *pszSrc <= 'Z') ? (*pszSrc - 'A' + 'a') : *pszSrc;
}while (*++pszSrc)

return;
}

void str_low_2_up(char *pszSrc, char *pszDest)
{
if (!pszSrc || !*pszSrc || !pszDest)
{
return;
}

do
{
*pszDest++ = ('a' <= *pszSrc && *pszSrc <= 'z') ? (*pszSrc - 'a' + 'A') : *pszSrc;
}while (*++pszSrc)

return;
}
willabc 2011-03-14
  • 打赏
  • 举报
回复
3楼的不错!
qqwqert001 2011-03-14
  • 打赏
  • 举报
回复
这个应该很简单吧
if (isupper(str[i]))
cout<<tolower(str[i]);
Freedom 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 pyf123 的回复:]
C/C++ code

#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
cin>>str;
for(string::size_type i=0;i<str.size();++i)
str[i]=toupper(str[i])……
[/Quote]
我也是这么做的就不想其他方法了
kingbigeast 2011-03-14
  • 打赏
  • 举报
回复

#include <cctype>
void up2lower(char *a)
{
while(*a++)
if(isupper(*a))tolower(*a);//也可以不用这个if判断语句,因为*a不是大写字母的话tolower不改变它的值
return 0;
}
vxking 2011-03-14
  • 打赏
  • 举报
回复
stl能用就用啊
greex 2011-03-14
  • 打赏
  • 举报
回复
std::string strTmp ="12sfdA45ddsfA";
char * pBuff = new char[strTmp.size()];
memset(pBuff,0,10);
memcpy(pBuff,strTmp.c_str(),strTmp.size());
strlwr(pBuff);
strTmp =pBuff;
delete []pBuff;
pBuff = 0;
std::cout<<strTmp<<std::endl;
碎碎念 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ckt1120 的回复:]

C/C++ code

void Change(char* pStr)
{
while ((*pStr) != '\0'){
if ((*pStr)>='A' && (*pStr)<='Z'){
*pStr += 32;
}
pStr++;
}
}
[/Quote]

++
wang1525 2011-03-14
  • 打赏
  • 举报
回复
我是来学习滴
hkping420 2011-03-14
  • 打赏
  • 举报
回复
#include<iostream.h>
#include<string.h>
void main()
{
int n;
cout<<"请输入字符的长度:";
cin>>n;
char *p=new char[n];
cout<<"请输入字符串:";
for(int i=0;i<n;i++)
cin>>char(p[i]);
cout<<"转换后的字符串:"<<strlwr(p)<<endl;
delete p;
}
孙歌 2011-03-14
  • 打赏
  • 举报
回复
string str;
cin>>str;
transform(str.begin(),str.end(),str.begin(),tolower );
cout<<str;
tomatobin 2011-03-14
  • 打赏
  • 举报
回复
char *s;
while(*s)
{
if(isalpha(*is)) *s=tolower(*s);
s++;
}
cout<<s<<endl;
futurepi 2011-03-14
  • 打赏
  • 举报
回复
来凑个热闹
Sayesailor 2011-03-14
  • 打赏
  • 举报
回复

#include <assert.h>
#include <tchar.h>
#include <memory>

//be careful release the pointer returned
TCHAR* lowcase(const TCHAR* pStr)
{
size_t strlen = _tcslen(pStr) + 1;
TCHAR* pDest = new TCHAR[strlen];
memset(pDest, 0, strlen);
_tcscpy_s(pDest, strlen, pStr);
_tcslwr_s(pDest, strlen);
return pDest;
}

const TCHAR* str = _T("This iS a pEn, that is A penCile);

int _tmain(int argc, _TCHAR* argv[])
{
TCHAR* p = lowcase(str);
delete p;
p = NULL;
return 0;
}
heartgoon2010 2011-03-14
  • 打赏
  • 举报
回复
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s="12sfdA45";
for(string::size_type index=0;index!=s.size();index++)
if(isupper(s[index])) s[index]=tolower(s[index]);
return 0;
}
allenlinhao 2007-10-21
  • 打赏
  • 举报
回复
#include<iostream>
#include<string>
using namespace std;
int main()
{
string sentense;
cin>>sentense;
for(int i=0;i<sizeof(sentense);i++)


if(sentense[i]>='a'&&sentense[i]<='z')
{
sentense[i]=toupper(sentense[i]);
cout<<sentense[i];
}
else if(sentense[i]>='A'&&sentense[i]<='Z')
{
sentense[i]=tolower(sentense[i]);
cout<<sentense[i];
}



else
cout<<sentense[i];
}
freeCodeSunny 2007-10-20
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
for(string s;getline(in, s);)
{
int len;
len=s.length();
for(int i=0;i<len;i++)
{
if(s[i]>='A'&&s[i]<='Z')s[i]+=32;
cout<<s[i];
}
cout<<endl;
}
return 0;
}
加载更多回复(27)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧