社区
C++ Builder
帖子详情
一个比较麻烦的字符串问题
bit_hj
2003-08-20 11:37:25
请问怎样将这个字符串分开。
a.添加;b.修改;c.删除;d.查看
他们是以;分开的
请问怎样可以将这个长字符串分开(以;分开)
分成
a.添加
b.修改
c.删除
d.查看
这四个子字符串。
字串个数不一定是四个。
...全文
109
11
打赏
收藏
一个比较麻烦的字符串问题
请问怎样将这个字符串分开。 a.添加;b.修改;c.删除;d.查看 他们是以;分开的 请问怎样可以将这个长字符串分开(以;分开) 分成 a.添加 b.修改 c.删除 d.查看 这四个子字符串。 字串个数不一定是四个。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yydy
2003-08-20
打赏
举报
回复
:)
freshman2003
2003-08-20
打赏
举报
回复
哈哈,被人抢了行。
freshman2003
2003-08-20
打赏
举报
回复
用AnsiPos()取得“;”的位置,用SubString()提取子串。
free1949
2003-08-20
打赏
举报
回复
string Source("a.添加;b.修改;c.删除;d.查看;.....");
string temp("");
int Pos=Source.Pos(";");//获得第一个“;”位置
if(Pos!=0) //是否存在分隔符号“;”
{
do
{
temp=Source.SubString(1,Pos);//得到分开的串
Source.delete(1,Pos+1);//删除已取出的串和“;”
Pos=Source.Pos(";"); //重新获得第一个“;”位置
}while(Pos!=0)
}
江山易改
2003-08-20
打赏
举报
回复
你是要分成四个字符串吗?
zjqyb
2003-08-20
打赏
举报
回复
ExtractString
Santos
2003-08-20
打赏
举报
回复
用TStringList吧,它缺省的分隔字符为空格或逗号,所以你只要将"a.添加;b.修改;c.删除;d.查看"改为"a.添加 b.修改 c.删除 d.查看"或"a.添加,b.修改,c.删除,d.查看"即可。
TStringList要这样用:
TStringList *MyStringList = new TStringList();
try
{
MyStringList->CommaText = "a.添加, b.修改, c.删除, d.查看";
}
__finally
{
delete MyStringList;
}
Caption = MyStringList->Count; //-- 此处Count值为4
祝你好运!
kmfangxun
2003-08-20
打赏
举报
回复
建议用标准函数 strtok(char*,";");头文件:stdlib.h;帮助上有例.
lvjack
2003-08-20
打赏
举报
回复
TStringList *Strs= new TStringList;
Strs->Delimiter = ';';
Strs->DelimitedText = "a.添加;b.修改;c.删除;d.查看";
ShowMessage(IntToStr(Strs->Count));
for (int i=0;i<Strs->Count;i++)
{
ShowMessage(Strs->Strings[i]);
}
或者(代码不是我写的)
//用标准库的vector和string
#include <vector>
#include <string>
#include <iostream>
using namespace std;
vector<string> *split(string& sLine, char flag)
{
vector<string> *psvect=new vector<string>;//string数组的指针
string::size_type pos=0,prev_pos=0;
while( (pos=sLine.find_first_of(flag,pos))!=string::npos)
{
psvect->push_back(sLine.substr(prev_pos,pos-prev_pos));
prev_pos = ++pos;
}
psvect->push_back(sLine.substr(prev_pos,pos-prev_pos));//处理最后一段
return psvect;
}
int main(int argc, char* argv[])
{
string s="2003-7-1";
vector<string> *psvect; //string数组的指针
psvect=split(s,'-');
for( unsigned int i=0; i<psvect->size(); i++)
{
cout<< (*psvect)[i]<<endl;
}
delete psvect;
cin.get();
return 0;
}
//---------------------------------------------------------------------------
windlyzhang
2003-08-20
打赏
举报
回复
AnsiString Source="a.添加;b.修改;c.删除;d.查看;";
String str1=SubStr(Source);//str1=a.添加
String str2=SubStr(Source);//str2=ab.修改
String str3=SubStr(Source);//str3=c.删除
String Str4=SubStr(Source);//str4=d.查看
String __fastcall TFrmField::SubStr(String &Source,String Des)
{
int pos=Source.Pos(Des);
if(pos==0) return Source;
int len=Source.Length();
String SubString=Trim(Source.SubString(1,pos-1));
Source=Trim(Source.SubString(pos+1,len-pos));
return SubString;
}
Cocoky
2003-08-20
打赏
举报
回复
这样行
这样不知道行不行:
AnsiString Source="a.添加;b.修改;c.删除;d.查看;.....";
AnsiString temp[MAX];
int tempcount = 0;
char *chr;
chr = Source.c_str();
for(int i=0, tempcount = 0;i<Source.Length();i++)
{
if(chr[i]!=';')
{
temp[tempcount] += chr[i];
}
else
{
tempcount ++;
}
}
蓝桥云课 | 拼数
如果是整数类型,那是
一个
很
麻烦
的事情,至少你要解决
一个
问题
,就是如何像
字符串
那样,逐位
比较
。此时,你会想到
字符串
,但是,如果你直接写出这样的代码,那会只能通过80%如果直接
比较
a>b,那么b是排在a前面的,也就是它是"3123",但是,我们要的确实"3312"要想解决这个
问题
,我们要这样做
比较
a+b和b+a之间的大小关系,就可以了。因为你会忽略一件事情,假如a是b的子集的情况。譬如:a=“3”,b=“312”输出
一个
整数,表示答案。最大运行内存:256M。
shell 脚本
比较
字符串
相等_
比较
带空格的
字符串
相等的Shell脚本 如何
比较
两个
字符串
...
****************************
比较
带空格的
字符串
相等的Shell脚本***************************如果要
比较
的
字符串
中间有空格,可以用下面的程序(摘自《Unix Shells by Example, 3rd Edition》)name="Joe Blow"if [[ $name == "Joe Blow" ]]thenprintf "Hello $...
字符串
大小
比较
函数的实现
现在C++已经支持
字符串
之间的直接
比较
。 但前段时间遇到
一个
笔试题,让自己实现函数完成两个
字符串
之间的
比较
。 大家都知道,
比较
过程很简单,就是逐个字符的
比较
ASCII码值的大小..但亲自实现时还是遇到了一点小
麻烦
。 代码如下,供后来人参考 // exp2.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include usi
Shell条件测试之
字符串
比较
1、
字符串
比较
(
字符串
运算符): str1 = str2 : 相等
比较
str1 != str2 : 不等
比较
str1 < str2 : str1小于str2为true,
比较
字母在字母表顺序,字母越靠后就越大,反之越小 str1 > str2 : str1大于str2为true,
比较
字母在字母表顺序,字母越靠后就越大,反之越小 -n str1 : str1长度不是0则为true -z s...
java
字符串
比较
到底应该用==还是equals
当用new String(“aaaa”)对
字符串
做定义时,==会返回false,equals可以返回正常结果。 比如 System.out.println("a" == "a"); //true System.out.println("a".equals("a")); //true System.out.println("a".equals(new String("a")));
C++ Builder
13,872
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章