急,有关C++中的字符串
请教各位大侠,指点一下:
我要在程序中区分一下两个串,要求是如果串中含有空格的话,不符合;不含空格就可以,
比如说,
/acm/compiler 是一个正确的串
/a m/compiler 就是一个有符合要求的串
问题点数:20、回复次数:8Top
1 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2006-05-02 19:31:43 得分 0
可以遍历字符串.
space的ascii码是0x20h.
只要发现有字符的ascii码是0x20h,就判断为不符合要求的字符串.Top
2 楼xpdavis(咕嘟-不想孤独)回复于 2006-05-02 19:35:10 得分 0
if(strchr(str, ' ') == NULL)符合
else 不符合Top
3 楼tgs19850618(小痞子)回复于 2006-05-02 19:36:40 得分 0
这位大哥,能否给出一具体的程序段,这个问题困扰我几天了,有点急.
这个想法我也曾有过,只是苦于写不出程序来Top
4 楼zmrpro(敖孤云)回复于 2006-05-02 21:49:35 得分 0
#include <iostream>
#include <cctype>
using namespace std;
int main()
{
string str1 = "/acm/compiler";
string str2 = "/a m/compiler";
for(string::size_type index = 0; index != str1.size(); index++)
{
if(isspace(str1[index]))
{
cout<<"str1 has space"<<endl;
}
else if(isspace(str2[index]))
{
cout<<"str2 has space"<<endl;
}
}
}Top
5 楼xpdavis(咕嘟-不想孤独)回复于 2006-05-02 22:08:00 得分 0
这样写还不够具体啊,只能晕了Top
6 楼tgs19850618(小痞子)回复于 2006-05-03 16:34:50 得分 0
谢谢大家,辛苦了.Top
7 楼Kenmark(fenix)回复于 2006-05-03 20:48:52 得分 0
简单的匹配啊Top
8 楼qhgary(Gary)回复于 2006-05-03 23:26:56 得分 20
怎么搞这么复杂...
我始终觉得能够用stl简单实现就不要自己去做。
#include <string>
using namespace std;
int main()
{
string a1 = "acm/compiler";
string a2 = "a m/compiler";
if (string::npos == a1.find(" ")) {
// 表示a1中含有空格
}
else {
// 表示a1中不含有空格
}
return 0;
}
其实关键就在于string::find这个函数了,注意要用双引号,如果找到
就返回所在的位子,如果返回的是string::npos表示没有找到。Top




