一个简单问题,对CString类型的,如何访问某个字符?谢谢

snowfield 2003-09-12 03:04:42
刚刚学VC
我定义了一个CString s1="abcd";
访问s1的第n个字符,想用下标方式访问,不知可否:s[n]
编译可通过,但执行时出错。不知正确的方式该怎么样做?
...全文
215 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
EricHxy 2003-09-12
  • 打赏
  • 举报
回复
GetAt
boffinyu 2003-09-12
  • 打赏
  • 举报
回复
s1.mid(n,1)
寻开心 2003-09-12
  • 打赏
  • 举报
回复
[]只可以读,不可以改
寻开心 2003-09-12
  • 打赏
  • 举报
回复

s1[n] = 'a'; // 是错误的写法
不允许用下标的方式,该内容;但是可以读
要改必须用 s1.SetAt(n, a); 的方式

或者
char * pBuf = s1.GetBuffer(s1.GetLength());
pBuf[n] = 'a';
a1.ReleaseBuffer();
vcforever 2003-09-12
  • 打赏
  • 举报
回复
哇!都说的这么全了

没什么说的了,祝楼主早日解决问题吧!

呵呵……
daylight1980 2003-09-12
  • 打赏
  • 举报
回复
同上
luoshenfu 2003-09-12
  • 打赏
  • 举报
回复
sl.GetAt(n)
chutianqi 2003-09-12
  • 打赏
  • 举报
回复
sl.mid( n, 1 );

比较好用
zhangjianwen 2003-09-12
  • 打赏
  • 举报
回复
GetAt
nomenn 2003-09-12
  • 打赏
  • 举报
回复
sl.mid( n, 1 );
sl.GetAt(n)
这连个函数的返回至是CString类型的
snowfield 2003-09-12
  • 打赏
  • 举报
回复
请问得到的返回值是什么类型?不是字符型吗?下面的用法不对吗?
s[n]=='a'
flyelf 2003-09-12
  • 打赏
  • 举报
回复
可以这么使用,至于出错,估计是你的下标越界了
zhaolaoxin 2003-09-12
  • 打赏
  • 举报
回复
sl.mid( n, 1 );
sl.GetAt(n)

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧