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

aflame2003 2003-01-13 01:28:43
如何把string类型字符串的字母全转换成小写?
...全文
255 点赞 收藏 12
写回复
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)
回复
发动态
发帖子
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
社区公告
暂无公告