找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 673|回复: 7

[求助]如何把字符串转变成数组来存储?

[复制链接]
发表于 2009-11-3 03:54:30 | 显示全部楼层 |阅读模式 IP:江苏扬州
各位你们好,我现在有个问题,就是怎么样把字符串存储在数组里面。不是利用char array[]="string name"这样的形式。而是,给你了一个string name,然后怎么把这一串放到数组里去!!
比如:String filename = "c:\b.jpg";
然后把c:\b.jpg这几个字符放在定义好的一个数组里去!!谢谢啦!!
发表于 2009-11-3 03:54:32 | 显示全部楼层 IP:江苏扬州
char array[10];
string filename = "c:\\b.jpg";//这里要用两个斜杠,不然复制的时候会把\b当成转义字符
int i;
for(i = 0; i < filename.length(); i ++)
array[i] = filename[i];
array[i] = '\0';
cout<<array<<endl;
回复

使用道具 举报

发表于 2009-11-3 03:54:33 | 显示全部楼层 IP:江苏扬州
2006-7-21 08:38:30 wfpb

等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
第 4 楼   得分:0  
用数组不如用动态分配内存的方法比较方便。
char *str=new char[10];
string filename = "c:\\b.jpg";
str=filename.c_str();
回复

使用道具 举报

发表于 2009-11-3 03:54:34 | 显示全部楼层 IP:江苏扬州
string的length函数中只有一条return语句,编译器的优化选项中一般都有允许编译器选择某些简单的函数在其被调用处展开的选项,所以这没关系
不过建议用下面这种方法:
  1. char szArray[10];
  2. string filename = "c:\\b.jpg";
  3. strcpy(szArray, filename.c_str());
复制代码
回复

使用道具 举报

发表于 2009-11-3 03:54:35 | 显示全部楼层 IP:江苏扬州
以下是引用wfpb在2006-7-21 9:04:36的发言:
用数组不如用动态分配内存的方法比较方便。
char *str=new char[10];
string filename = "c:\\b.jpg";
str=filename.c_str();
wfpb,首先,你这里造成内存泄漏了,给str指针申请的内存白申请了,其次,当filename的内容改变时,str的内容也会变,这并不好
回复

使用道具 举报

发表于 2009-11-3 03:54:36 | 显示全部楼层 IP:江苏扬州
哦,是啊,忘记考虑这了,你的方法的确不错
回复

使用道具 举报

发表于 2009-11-3 03:54:38 | 显示全部楼层 IP:江苏扬州
2006-7-21 10:22:23 wfpb

等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
第 9 楼   得分:0  

他说的展开都是一些inline函数,而inline函数都是很短小的代码。
比如有一个inline int getSize(){return size;}调用他的时候,就是展开其代码来解决。
由于这些函数都非常短小,所以展开后也就相当于是很少的代码。因此在循环时执行的次数也不会很多。
回复

使用道具 举报

发表于 2009-11-3 03:54:39 | 显示全部楼层 IP:江苏扬州
语句多不用函数,效率差
语句少可以用,编译器会自行给他加inline
此时就相当于没有运行函数,被展开了,效率一样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 15:21 , Processed in 0.235645 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表