| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2047 人关注过本帖
标题:[求助]如何把字符串转变成数组来存储?
只看楼主 加入收藏
IsaacLee
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-3-2
收藏
 问题点数:0 回复次数:13 
[求助]如何把字符串转变成数组来存储?
各位你们好,我现在有个问题,就是怎么样把字符串存储在数组里面。不是利用char array[]="string name"这样的形式。而是,给你了一个string name,然后怎么把这一串放到数组里去!!
比如:String filename = "c:\b.jpg";
然后把c:\b.jpg这几个字符放在定义好的一个数组里去!!谢谢啦!!
搜索更多相关主题的帖子: 字符 
2006-07-20 14:22
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
得分:0 
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;

2006-07-20 15:43
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

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

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-21 09:04
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 

string的length函数中只有一条return语句,编译器的优化选项中一般都有允许编译器选择某些简单的函数在其被调用处展开的选项,所以这没关系
不过建议用下面这种方法:
[CODE] char szArray[10];
string filename = "c:\\b.jpg";
strcpy(szArray, filename.c_str());[/CODE]


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-07-21 09:08
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用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的内容也会变,这并不好


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-07-21 09:11
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
哦,是啊,忘记考虑这了,你的方法的确不错

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-21 09:13
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-21 10:22
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

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


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-21 10:49
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
语句多不用函数,效率差
语句少可以用,编译器会自行给他加inline
此时就相当于没有运行函数,被展开了,效率一样

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-07-23 01:06
快速回复:[求助]如何把字符串转变成数组来存储?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027106 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved