| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 637 人关注过本帖
标题:一个“字符串和指针相结合”的编程题,请高手赐教!
只看楼主 加入收藏
liudw2
Rank: 4
等 级:业余侠客
帖 子:85
专家分:248
注 册:2011-7-31
收藏
得分:0 
回复 8楼 非己莫属
因为指针数组的指针分别指向"zhongyuan"   "da"   "jia"   "ting",也就是说这四个字符串分别是一维数组,且字符串在C++中是需要加上“\0”的。例如:"zhongyuan\0"。
而且这是字符串,如果是str[4] = {"zhongyuan", "da", "jia", "ting"},那就是错误的,应该改为str[4] = {'zhongyuan', 'da', 'jia', 'ting'},那么这就只是字符而已
2012-05-15 21:27
BianChengNan
Rank: 8Rank: 8
等 级:贵宾
威 望:13
帖 子:302
专家分:972
注 册:2011-11-30
收藏
得分:0 
以下是引用lz1091914999在2012-5-14 10:30:57的发言:

#include  
#include  
#include  
#include  
using namespace std;
class SplitResult {
public:
    SplitResult(char** a = 0, int c = 0) : array(a), count(c) {}
    ~SplitResult();
    char** getArray() { return array; }
    int    getCount() { return count; }
private:
    char** array;
    int    count;
    friend SplitResult* split(const char*, SplitResult*);
};
SplitResult::~SplitResult()
{
    for (int i = 0; i < count; ++i)
        delete array;
    delete array;
}
SplitResult* split(const char*, SplitResult*);
int main()
{
    const char* str = "zhongyuan  da  jia  ting";
    SplitResult sr;
    int i;
 
    split(str, &sr);
    for (i = 0; i < sr.getCount(); ++i)
        cout << sr.getArray() << " ";
}
SplitResult* split(const char* str, SplitResult* sr)
{
    const char* p = str;
    const char* start;
    char** array;
    char* tmp;
    int length;
    int i;
    vector v;
 
    while (*p) {
        if (isalpha(*p)) {
            start = p;
            length = 0;
            while (isalpha(*p))
                ++p, ++length;
            tmp = new char[length + 1];
            tmp[length] = '\0';
            v.push_back(strncpy(tmp, start, length));
        }
        ++p;
    }
 
    array = new char*[v.size()];
    for (i = 0; i < v.size(); ++i)
        array = v;
    sr->array = array;
    sr->count = v.size();
 
    return sr;
}
c c++ 混合编程啊

我的群:149544757 C/C++/Assembly 喜欢交流的朋友进,进群请写消息
2012-05-18 09:46
快速回复:一个“字符串和指针相结合”的编程题,请高手赐教!
数据加载中...
 
   



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

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