今天用VS2003,发现字符串的问题

songlia2 2007-05-18 02:43:50
以前一直用VC6的,今天用VS2003看别人的代码,发现别人是这样写的:

CString cs;
cs = "Select..."
"from..."
"where...";

感觉很差异,那几个字符串中间没有“+”或者其他的任何操作符的啊,开始以为是CString是不是重载运算符还是怎么的,后来做了测试:

char test[]= "Select..."
"from..."
"where...";

TRACE("\s\n", test);

这样也是可以的,并且输出结果正确,这回我不明白了。手头暂时没有VC6,无法做进一步测试。

恕在下孤陋寡闻,哪位能告诉我这是怎么回事?C++标准支持的???


...全文
249 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
TA_V_SFIQ_SFIQ 2007-05-18
  • 打赏
  • 举报
回复
楼主还是不错的!学会反思了!
学了这么久的C++我也是刚知道的,互相学习了!不要太在意别人了!哈哈
songlia2 2007-05-18
  • 打赏
  • 举报
回复
经过搜索,找到答案:

#include <stdio.h>
#include <iostream>
int main()
{
printf("Hello world!"); // 教科书的写法
puts("Hello world!"); // 我最喜欢的
puts("Hello" " " "world!"); // 拼接字符串
std::cout << "Hello world!" << std::endl; // C++风格的教科书写法
return 0;
}
特别需要注意的是,在C/C++里,如果两个字符串之间除空白符以外没有任何东西,编译器会自动认为这两个字符串是连在一起的字符串。这样,如果一个字符串过长,可以用这种方法换行来写,既不浪费性能,又美观。

我确实没在我看过的c++书里看到过这种写法,既然是靠编译器这么认为的,那么是否所有的c++编译器都支持呢?


唉,“c++功底不好”,被bs了,被打击啊

结贴!!!
songlia2 2007-05-18
  • 打赏
  • 举报
回复
不是吧,我只知道有这种用法:

char test[] = "Select \
from \
Where";

求详细的解释
ouyh12345 2007-05-18
  • 打赏
  • 举报
回复
用CString类的时候,可以用+连接字符串,
其它的可以用strcat等,
这些方法都至少多用了一个语句。
ouyh12345 2007-05-18
  • 打赏
  • 举报
回复
这是一种小技巧。
当一行写不下时,就用如上的方式列成几行。

songlia2 2007-05-18
  • 打赏
  • 举报
回复
请详细说一下好吗
ouyh12345 2007-05-18
  • 打赏
  • 举报
回复
不是VS2003的问题,而是楼主的C++功底不好。
songlia2 2007-05-18
  • 打赏
  • 举报
回复
我知道是一条语句,你在一条语句中写几个字符串,中间没有任何操作符,这算什么呢
踏实每一步 2007-05-18
  • 打赏
  • 举报
回复
编译器看到分号才算一句,这不是CString 重载运算符,而是本来就是一条语句.
superbluepoint 2007-05-18
  • 打赏
  • 举报
回复
gz
tiger波波 2007-05-18
  • 打赏
  • 举报
回复
还真不知道,我装了2005,但不用,机器太垃圾

16,472

社区成员

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

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

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