简单char*长度问题?赚分了!

zhaoxyu 2002-08-15 11:51:41
定义char* x;
x="12345678";
int k=sizeof(x);
得到k=4; 如何得到x的确切长度8?
...全文
2369 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
LaoLi_SC_008 2002-08-15
  • 打赏
  • 举报
回复
定义char* x;
x="12345678";
int k=sizeof(x);
得到k=4; 如何得到x的确切长度8?

实际上x = "12345678"是将字符串常量的地址赋给了x, 所以你应该这样定义x:
const char *x = "12345678";
另外:sizeof是获得char类型的长度,而不是字串的长度,应该如下:
int k= strlen(buf);
7zkeeper 2002-08-15
  • 打赏
  • 举报
回复
strlen
wanglei888 2002-08-15
  • 打赏
  • 举报
回复
要想得到一个外部char*的长度是很困难的,方法就是使用strlen(char*),但这种方法只能得到以'\0'结束的字符串的长度,而不能得到你实际分配给这个char*的内存的长度,并且,如果char*中存放的是自定义数据(也就是0可能是合法数据)的时候,这个方法就不能用了。

建议增加一个参数来表示你传递的char*的可用内存长度。
volcary 2002-08-15
  • 打赏
  • 举报
回复
char * pchar;
pchar="012345607";
for(int ilen=0;pchar[ilen]!=0;ilen++);
printf("%d \n",ilen);
zangyong 2002-08-15
  • 打赏
  • 举报
回复
指针类型长度为4

sizeof(char *)=sizeof(CString)=4

如果想得到8,可:

const char *a="12345678";

CString tmp("");
tmp=a;
int i=tmp.GetLength();

TRACE("%d",i);
zhaoxyu 2002-08-15
  • 打赏
  • 举报
回复
谢谢各位! 马上散分了
zhaoxyu 2002-08-15
  • 打赏
  • 举报
回复
我的程序只能仅使用char*

也就是不能通过char[]过渡传值

char* x=某个外部数值;(不确定长度)

如何得到‘某个外部数值’的长度?



JaneQian 2002-08-15
  • 打赏
  • 举报
回复
同意真心英雄的观点
xt_jat 2002-08-15
  • 打赏
  • 举报
回复
char x[] = "12345678" ;
likebj 2002-08-15
  • 打赏
  • 举报
回复
strlen(x)也可以吧?
ylb_and_xy 2002-08-15
  • 打赏
  • 举报
回复
char* x = "12345678";
CString str;
strcpy(str, x);
int k=str.GetLength();
  • 打赏
  • 举报
回复
char* x;
x="12345678";
CString str;
str.Format("%s", x);
int k=str.GetLength();
wuxuan 2002-08-15
  • 打赏
  • 举报
回复
定义的不对,
char *x;
char a[] ="12345678";
x=a;
int k=sizeof(x);
这样就会得到8了,
错误因为你的x没有分配存贮空间

16,466

社区成员

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

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

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