首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何最简单地分解大串“123;qwe;3432;rer"成"123"和"qwe"和"3432"、"rer"等子串? [已结贴,结贴人:yhec]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yhec
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-21 16:41:59 楼主
    如何最简单地分解大串“123;qwe;3432;rer"

    "123"
    "qwe"
    "3432"
    "rer"
    等子串?
    120  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • akirya
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 6

    发表于:2008-08-21 16:54:041楼 得分:5
    strtok
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • akirya
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 6

    发表于:2008-08-21 16:55:202楼 得分:30
    C/C++ code
    // crt_strtok.c // compile with: /W3 // In this program, a loop uses strtok // to print all the tokens (separated by commas // or blanks) in the string named "string". // char str[] = "123;qwe;3432;rer"; char seps[] = ";"; char *token; int main( void ) { printf( "Tokens:\n" ); // Establish string and get the first token: token = strtok( str, seps ); // C4996 // Note: strtok is deprecated; consider using strtok_s instead while( token != NULL ) { // While there are tokens in "string" printf( " %s\n", token ); // Get next token: token = strtok( NULL, seps ); // C4996 } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yhec
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 16:58:383楼 得分:0
    有没有更简单的?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • songhtao
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      2

    发表于:2008-08-21 17:15:414楼 得分:20
    用TStrings的DelimitedText和delimiter
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jxw1987628
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-08-21 18:21:285楼 得分:5
    建议都很好,我通常会用比较笨的Pos,和SubString来分割!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • BCBPLC
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 08:17:406楼 得分:30
    跟4楼一样,最简单的还是TStringList;这个串对象功能很强:

            TStringList *ss=new TStringList;
          ss->Delimiter=';';
          ss->DelimitedText="123;qwe;3432;rer";

          // 子串ss->Strings[0].......ss->String{N-1]
          for (int i=0;i <ss->Count;i++)
              ShowMessage(ss->Strings[i]);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jdifjoifj
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 08:42:417楼 得分:0
    该回复于2008-08-22 15:23:16被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Waiting4you
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 5

      2

    发表于:2008-08-22 09:01:048楼 得分:15
    如果串很大的话还是strtok效率高。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jacknes009
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 09:50:379楼 得分:5
    strtok
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ouygg
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 11:08:2610楼 得分:10
    用TStrings的DelimitedText和delimiter
    strtok
    都可以,关键你是怎么使用数据
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved