...关于字符串

街角咖啡 2001-08-09 02:12:45
int i = 7;
char * m_pUserName = new char[i];
i = strlen( m_pUserName );

i为什么会老是等于11,真奇怪。
...全文
117 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
GJA106 2001-08-09
  • 打赏
  • 举报
回复
int i = 7;
char * m_pUserName = new char[i];
m_pUserName[7]='\0';
i=strlen(m_pUserName);

i等于7,结果一致。
街角咖啡 2001-08-09
  • 打赏
  • 举报
回复
关于strlen地原理我想我清楚了,谢谢大家,但是我现在问题是想通过
char * m_pUserName = new char[i];
得到一个长度位i的 m_pUserName,我要怎么做。
sunyanbiao_12 2001-08-09
  • 打赏
  • 举报
回复
m_pUserName[0]='\0';等于NULL比较好如
m_pUserName[i]=NULL;
Chice_wxg 2001-08-09
  • 打赏
  • 举报
回复
楼上的想法肯定不是。

因为他丢了结束符号'\0'了~~~~

主  题:...关于字符串
作  者:vol
所属论坛:Visual C++
问题点数:20
回复次数:3
发表时间:2001-8-9 2:12:46


int i = 7;
char * m_pUserName = new char[i];
m_pUserName[0]='\0';
i = strlen( m_pUserName );
//现在i是0

街角咖啡 2001-08-09
  • 打赏
  • 举报
回复
谢谢各位了。

分不多,请包涵。
brownfish201 2001-08-09
  • 打赏
  • 举报
回复
加一句在 char * m_pUserName = new char[i]; 下面 

m_pUserName[i - 1] = 0;

再试试。

是6吗?
ab2001 2001-08-09
  • 打赏
  • 举报
回复
strlen()返回的是以0结尾的字符串长度。
n6002 2001-08-09
  • 打赏
  • 举报
回复
strlen判断字符串长度是根据c结尾字符'\0'来做的。
获得内存长度么,用另一个函数,哎呀,我给弄丢了。

16,548

社区成员

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

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

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