C++ 字符串

Chr1sGardn3r@10 2015-05-13 09:25:20
比如说有这么一个类

class A
{
//假设三位数001代表1号站点
int m_StationID;

//例如:201505152115代表2015年05月15日21点15分
int m_SattionTime;

//自行车状态,有两种情况
//还车为1,借车为0
int m_StationBikeState;

//用户姓名
char m_UserName;

//将三个参数转换成字符串
//例如将在001站点2015年05月15日21点15分时Jim借车这一条记录
//转换成001201505152115Jim0
char a(int m_StationID,int m_SattionTime,char m_UserName,int m_StationBikeState);
}

在C++中如何将一系列的属性转换成一条字符串
...全文
132 点赞 收藏 7
写回复
7 条回复
赵4老师 2015年05月15日
作为一个C程序员,对 scanf,sscanf,fscanf printf,sprintf,fprintf 这类函数的用法,还是要做到“拳不离手,曲不离口”的。
回复 点赞
苏叔叔 2015年05月14日
1. int m_SattionTime; 32位的int类型无法装下这么长的数据 2.

//把i1、i2和c拼接成字符串
int main(void)
{
	int i1 = 12;
	int i2 = 520;
	char c = 'a';
	int r1, r2;
	char buf[20];
	r1 = sprintf(buf, "%d", i1);
	r2 = sprintf(buf + r1, "%d", i2);
	sprintf(buf + r1 + r2, "%c", c);
	printf("%s\n", buf);   //12520a
	return 0;
}
回复 点赞
fly_dragon_fly 2015年05月14日
用sprintf简单,m_SattionTime这个时间是怎么表示的
回复 点赞
此后三年 2015年05月14日
char str[100] = {}; int year = 2015; int month = 02; int day = 05; sprintf(str, "%d%d%d", year, month, day);
回复 点赞
Chr1sGardn3r@10 2015年05月14日
引用 5 楼 yao19941010 的回复:
[quote=引用 3 楼 fly_dragon_fly 的回复:] 用sprintf简单,m_SattionTime这个时间是怎么表示的
我拼错了吧 应该是m_StationTime[/quote] 噢噢,我只是想用一串数字来表示年月日时分
回复 点赞
Chr1sGardn3r@10 2015年05月14日
引用 3 楼 fly_dragon_fly 的回复:
用sprintf简单,m_SattionTime这个时间是怎么表示的
我拼错了吧 应该是m_StationTime
回复 点赞
iyomumx 2015年05月13日
首先返回一个char是取不了字符串的,要么是char*要么是std::string。既然是用C++了那么自然是推荐std::string。 组合字符串的方式不少,不过C++的stringstream太“重”了,用sprintf好了,而且你的字符串长度是可以预测的,用起来还是很方便的。
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告