如何把string类型字符串的字母全转换成小写?

aflame2003 2003-01-13 01:28:43
如何把string类型字符串的字母全转换成小写?
...全文
415 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
merlinran 2003-03-11
  • 打赏
  • 举报
回复
对不起fangrk和singlerace两位老兄了。两位对标准库的了解比我好。
merlinran 2003-03-11
  • 打赏
  • 举报
回复
以上都是传统的方法,想想标准库会怎么做吧。会定义两个function object或者function,然后用for_each()遍历整个容器。具体怎么做,自己去实现吧。我比较懒。
vyc 2003-03-10
  • 打赏
  • 举报
回复
俺也觉得fangrk的方法好.
VcGreenhand 2003-03-09
  • 打赏
  • 举报
回复
int strToLower( str )
char *str;
{
while( *str!=0 )
{
if ((*str<='Z')&&(*str>='A'))
*str += 'a' - 'A;'
str++;
}
return 0;
}
schwarz 2003-03-09
  • 打赏
  • 举报
回复
#include "string.h"
char *strlwr(char *str)
liu_feng_fly 2003-01-14
  • 打赏
  • 举报
回复
yes, fangrk给出了如何使用stl解决这个问题的方法,偶举双手双脚赞成
taockey 2003-01-14
  • 打赏
  • 举报
回复
知道ASCII是什么
就很容易搞定了!
singlerace 2003-01-13
  • 打赏
  • 举报
回复
以前这么用过:
// convert to lower case
#ifdef _USE
// microsoft nonstandard extension, strongly faint!!
_USE(fin.getloc(), ctype<char>).tolower( const_cast<char*>(line.c_str()),const_cast<char*>(line.c_str())+line.length() );
#else
// C++ standard
use_facet< ctype<char> >( fin.getloc() ).tolower( const_cast<char*>(line.c_str()),const_cast<char*>(line.c_str())+line.length() );
#endif // _USE macro
fangrk 2003-01-13
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
string str="abcdADcdeFDde!@234";
transform(str.begin(), str.end(), str.begin(), tolower);
cout<<str;
return 0;
}
coolali 2003-01-13
  • 打赏
  • 举报
回复
int strToLower( str )
char *str;
{
while( *str!=0 )
{
*str = tolower( *(unsigned char*)str );
str++;
}
return 0;
}
web_spider 2003-01-13
  • 打赏
  • 举报
回复
thinking in c++中的一段源码:
#include <string>
#include <iostream>
using namespace std;

// Make an uppercase copy of s:
string upperCase(string& s) {
char* buf = new char[s.length()];
s.copy(buf, s.length());
for(int i = 0; i < s.length(); i++)
buf[i] = toupper(buf[i]);
string r(buf, s.length());
delete buf;
return r;
}

// Make a lowercase copy of s:
string lowerCase(string& s) {
char* buf = new char[s.length()];
s.copy(buf, s.length());
for(int i = 0; i < s.length(); i++)
buf[i] = tolower(buf[i]);
string r(buf, s.length());
delete buf;
return r;
}

int main() {
string chooseOne("Eenie, meenie, miney, mo");
cout << chooseOne << endl;
cout << upperCase(chooseOne) << endl;
cout << lowerCase(chooseOne) << endl;
// Case sensitive search
int i = chooseOne.find("een");
while(i != string::npos) {
cout << i << endl;
i++;
i = chooseOne.find("een", i);
}
// Search lowercase:
string lcase = lowerCase(chooseOne);
cout << lcase << endl;
i = lcase.find("een");
while(i != lcase.npos) {
cout << i << endl;
i++;
i = lcase.find("een", i);
}
// Search uppercase:
string ucase = upperCase(chooseOne);
cout << ucase << endl;
i = ucase.find("EEN");
while(i != ucase.npos) {
cout << i << endl;
i++;
i = ucase.find("EEN", i);
}
ckacka 2003-01-13
  • 打赏
  • 举报
回复
#include <string>
char *_strlwr(char *string)

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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