MFC中CString 可以定义数组变量么? 比如我定义cstring m[9]。
答案:3 悬赏:80 手机版
解决时间 2021-01-24 10:23
- 提问者网友:你挡着我发光了
- 2021-01-23 20:39
MFC中CString 可以定义数组变量么? 比如我定义cstring m[9]。
最佳答案
- 五星知识达人网友:大漠
- 2021-01-23 21:09
用CStringArray,你这样用会有问题。追问您能给我举个例子么追答//CString转CStringArray
CString str = _T("i am a student");
CStringArray strArr;
if( DivStr(str,strArr,_T(" ")) <= 0)
{
AfxMessageBox( _T("数组为空!"));
return;
}
//CStringArray转CString
str = _T("");
int index =strArr.GetSize();
for(int i=0;i {
str += strArr[i]+_T("_");
}追问我的程序里面是这么写的:
头文件中:(类CLeftView)
static CString *fre[4],
在cpp文件中定义为
for(int i=0;i<4;i++)
{
CString CLeftView::*fre[i]="2s";
}
在调用时:CLeftView::*fre[0] CLeftView::*fre[1] CLeftView::*fre[3] CLeftView::*fre[4]
您可以帮我改成cstringarray么,我网上查了查,没有这方面的例子,msdn的解释不太懂。现在真是很焦急。真希望您能帮我一下追答static CStringArray fre;
CLeftView::fre.Add("2s");
CString str = fre[i];
另外,不推荐使用静态变量,MFC框架下很多解决全局的办法,建议你慢慢了解一下。追问谢谢您。还有,我想问一下,比如我定义了一个对象数组。 CLeftView screen[9];由于我要向linkthreadpro函数中传入这9个对象,而linkthreadpro函数要求传入一个指针。那我应该如何获取这几个对象的指针呢? 我知道数组名就是数组第一个元素的指针,可是其余的元素的指针怎么表示呢?追答这样试试:
&(screen[i])
CString str = _T("i am a student");
CStringArray strArr;
if( DivStr(str,strArr,_T(" ")) <= 0)
{
AfxMessageBox( _T("数组为空!"));
return;
}
//CStringArray转CString
str = _T("");
int index =strArr.GetSize();
for(int i=0;i
str += strArr[i]+_T("_");
}追问我的程序里面是这么写的:
头文件中:(类CLeftView)
static CString *fre[4],
在cpp文件中定义为
for(int i=0;i<4;i++)
{
CString CLeftView::*fre[i]="2s";
}
在调用时:CLeftView::*fre[0] CLeftView::*fre[1] CLeftView::*fre[3] CLeftView::*fre[4]
您可以帮我改成cstringarray么,我网上查了查,没有这方面的例子,msdn的解释不太懂。现在真是很焦急。真希望您能帮我一下追答static CStringArray fre;
CLeftView::fre.Add("2s");
CString str = fre[i];
另外,不推荐使用静态变量,MFC框架下很多解决全局的办法,建议你慢慢了解一下。追问谢谢您。还有,我想问一下,比如我定义了一个对象数组。 CLeftView screen[9];由于我要向linkthreadpro函数中传入这9个对象,而linkthreadpro函数要求传入一个指针。那我应该如何获取这几个对象的指针呢? 我知道数组名就是数组第一个元素的指针,可是其余的元素的指针怎么表示呢?追答这样试试:
&(screen[i])
全部回答
- 1楼网友:醉吻情书
- 2021-01-23 23:35
可以用指针,但是麻烦一点,应为要用new和delete
CString是一个类,就像操作其他类一样,最好用指针追问您能给我举个例子么?追答CString * pwcs[4];
for(int i=0;i<4;p[i++]=new CString);追问我没看懂您这个程序
您看我这么写对不对:
头文件中:(类CLeftView)
static CString *fre[4],
在cpp文件中定义为
for(int i=0;i<4;i++)
{
CString CLeftView::*fre[i]="2s";
}
在调用时:CLeftView::*fre[0] CLeftView::*fre[1] CLeftView::*fre[3] CLeftView::*fre[4]追答声明是对的,定义不对
你不如去掉static,在构造函数中初始化
{
for (int i=0;i<4;i++)
fre[i]=new CString;
}追问fre是频率
我想给初始化为“2s”;如果按照您这样定义的话,没有给fre[i]赋值呀追答可以啊,只是你别加*号
CString是一个类,就像操作其他类一样,最好用指针追问您能给我举个例子么?追答CString * pwcs[4];
for(int i=0;i<4;p[i++]=new CString);追问我没看懂您这个程序
您看我这么写对不对:
头文件中:(类CLeftView)
static CString *fre[4],
在cpp文件中定义为
for(int i=0;i<4;i++)
{
CString CLeftView::*fre[i]="2s";
}
在调用时:CLeftView::*fre[0] CLeftView::*fre[1] CLeftView::*fre[3] CLeftView::*fre[4]追答声明是对的,定义不对
你不如去掉static,在构造函数中初始化
{
for (int i=0;i<4;i++)
fre[i]=new CString;
}追问fre是频率
我想给初始化为“2s”;如果按照您这样定义的话,没有给fre[i]赋值呀追答可以啊,只是你别加*号
- 2楼网友:纵马山川剑自提
- 2021-01-23 22:19
你在头文件里已经声明了fre,在cpp中就不用再声明了,去掉CString,直接赋值。第一个错误是数组不能声明为0个,后面的错误是说你重复定义了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯