| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1403 人关注过本帖
标题:c++ win32下string分隔问题
只看楼主 加入收藏
work504
Rank: 1
等 级:新手上路
帖 子:18
专家分:3
注 册:2010-8-26
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:3 
c++ win32下string分隔问题
比如有个string strText是"AB 12345 67890"
现在我想把它以空格分隔成三块,放到一个stringArray[3]中,各放一个。
C#中很好实现,如下:
string[] stringArray= strText.Trim().Split(' ');
请问在C++的win32下如何改?
搜索更多相关主题的帖子: string win 分隔 
2010-08-26 22:57
work504
Rank: 1
等 级:新手上路
帖 子:18
专家分:3
注 册:2010-8-26
收藏
得分:0 
大家帮一下忙啊,知道的话。
2010-08-26 23:07
无名可用
Rank: 4
等 级:业余侠客
帖 子:79
专家分:259
注 册:2010-7-27
收藏
得分:0 
// Note:Your choice is C++ IDE
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string s="asdf    er qwertyu";
    char arr[3][20];
    int i=0,j=0,k=0;
    for(;s[k]!='\0';k++)
    {
        if(s[k]!=' ')
        {
            arr[i][j++]=s[k];
        }
        else if(s[k+1]!=' ')
        {
            arr[i][j]='\0';
            i++;
            j=0;
        }
    }
    //判断一下原字符串最后一个有效字符是否为空格
    if(s[k-1]!=' ')
    {
        arr[2][j]='\0';
    }
    //
    for(int t=0;t<3;t++)
    {
        cout<<arr[t]<<endl;
    }
    return 0;
}
大体思路就是这样了。
我在学校的专业是学C#的,近期利用暑假时间下了本《c++ primer》在自学,刚学了不到一周,还有很多不懂的地方。
代码中我用char arr[][]代替了string arr[],不知什么原因用string arr[]运行程序时总是报内存错误。。
我认为出错的地方在第一个for循环的   if(s[k]!=' ')
                                    {
                                           arr[i][j++]=s[k];//程序到这里出错
                                    }
处。
2010-08-27 00:01
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
不用注明 win32 什么的,下面这个方法 ISO C++ 都可以。
sting 本身就可以做为流对象,用的时候包一个 sstream 的头文件就可以了。
程序代码:
#include <iostream>
#include <sstream>
using namespace std;

int main(int argc,char** argv)
{
    string str("AB 12345 67890");
    cout << str << endl;

    istringstream instr(str);
    string array[3];

    for (int i = 0; i < 3; i++)
        instr >> array[i];

    for (int i = 0; i < 3; i++)
        cout << array[i] << endl;

    return 0;
}

2010-08-27 00:04
快速回复:c++ win32下string分隔问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027320 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved