社区
C++ 语言
帖子详情
字符串或字符数组大小问题
noness
2007-05-08 11:14:21
如题:
有一函数
A(char *str)
{
int b = str的长度
}
我如何得知这个传进来的字符串或字符数组的长度
...全文
460
11
打赏
收藏
字符串或字符数组大小问题
如题: 有一函数 A(char *str) { int b = str的长度 } 我如何得知这个传进来的字符串或字符数组的长度
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wm_cindy
2007-05-08
打赏
举报
回复
#include <iostream.h>
#include <string.h>
int num(char *ptr)
{
int bb = strlen(ptr);
return bb;
}
int main()
{
char *p= new char[100];
p = "string";
int b = num(p);
cout<<b<<endl;
return 0;
}
不好意思阿,刚才错啦,这个是按照楼上的方法写的,结果是6,应该是对的,你再看看吧
xlbdan
2007-05-08
打赏
举报
回复
char *bmpdata=new char[10];
void A(char *str)
{
int b = strlen(str);
}
void main()
{
strcpy(bmpdata,"hello");
A(bmpdata);
}
运行没问题啊
noness
2007-05-08
打赏
举报
回复
如用sizeof(数组名)/sizeof(元素类型) 得到的是str指针长度为4,并非str指针指向的字符串或字符数组长度。
我想要知道str指针指向的字符串或字符数组长度
wm_cindy
2007-05-08
打赏
举报
回复
计算数组长度:sizeof(数组名)/sizeof(元素类型)
noness
2007-05-08
打赏
举报
回复
完整代码如下:
char *bmpdata = new char[100];
.
.
.
此时bmpdata以有确定值
.
.
A(char *str)
{
int b = strlen(str);
}
A(bmpdata);
编译出现以上错误信息
noness
2007-05-08
打赏
举报
回复
完整代码如下:
char *bmpdata = new char[100];
.
.
.
此时bmpdata以有确定值
.
.
A(char *str)
{
int b = strlen(str);
}
A(bmpdata);
noness
2007-05-08
打赏
举报
回复
不行啊 提示错误
错误信息:strlen : cannot convert parameter 1 from 'char *' to 'const char *'
xlbdan
2007-05-08
打赏
举报
回复
如果是字符串,
int b = strlen(str)即可
如果是字符数组,
那要考虑一下是否该数组用\0作为结束,如果是,就仍然int b = strlen(str)即可
如果不是,那没办法取得该长度了
next163
2007-05-08
打赏
举报
回复
strlen(str),顺便提一下,这个函数要包含<cstring>头文件(C++),得到的是字符串字符的数目(不包括结尾的‘\0')。
jlxys
2007-05-08
打赏
举报
回复
strlen(str)
noness
2007-05-08
打赏
举报
回复
还是没解决 给出完整代码
char *bmpdata; 全局变量
void CFileView::OnFile()
{
FileWrite(bmpdata);
}
void CFileView::OnRfile()
{
//function 2
CFile file("333.bmp",CFile::modeRead|CFile::typeBinary);
len = file.GetLength();
bmpdata = new char[len+1];
bmpdata[len] = 0;
//int Length = strlen(bmpdata); 如在这里获取的话 是正常的为27653
file.Read(bmpdata,len);
file.Close();
}
void CFileView::FileWrite(char *data)
{
//int Length = strlen(bmpdata); 如在这里获取的话同样是5
int Length = strlen(data); // 跟踪这里的Length的值为5 没有达到目的
CFile file("222.bmp",CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);
file.Write(data, Length);
file.Close();
}
如定义bmpdata 为 unsigned char* 显示错误:
strlen : cannot convert parameter 1 from 'unsigned char *' to 'const char *'
应该怎么改下
字符串
与
字符数组
的对比
本文聚焦C语言,对
字符串
和
字符数组
进行对比。介绍了两者基本定义,
字符数组
是固定
大小
数组,
字符串
是以空字符结尾的
字符数组
。还提及内存分配、初始化方式、修改内容、作为函数参数及常见
问题
等方面,给出使用建议,如修改用
字符数组
或动态分配内存。
字符串
的比较【string和
字符数组
】
本文讨论了在使用string或
字符数组
进行
字符串
比较时遇到的
问题
,即它们返回的是字典序
大小
而非数值
大小
。为了准确比较
字符串
表示的数字
大小
,文章提供了一个自定义函数的解决方案。
c++ 输入不定长的
字符数组
博客讲述了在处理OJ题目中涉及删除
字符串
特定字符的
问题
时,如何避免使用固定
大小
的
字符数组
或vector,而是采用将string转换为char数组的方法。通过getline函数实现
字符串
输入,确保能读取包含空格的完整
字符串
,且占用空间仅与输入
字符串
长度相符。
c语言
字符串
博客指出在C语言中,
字符串
本质是以空字符\\0结尾的
字符数组
,建议设置为256字节或260字节
大小
的数组,还提出了C语言如何实现类似Python
字符串
的
问题
。
字符串
与
字符串
比较
文章介绍了如何在处理
字符数组
中查找
字符串
位置的
问题
时,使用strcmp和strncmp函数进行
大小
写敏感或不敏感的
字符串
比较。作者给出了一个C语言代码示例,展示了如何在嵌入式环境中实现此功能并鼓励读者讨论优化方法。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章