C或C++中,用双引号括起来的一串字符,编译后一定会在后面加个‘\0’么?解决办法
C或C++中,用双引号括起来的一串字符,编译后一定会在后面加个‘\0’么?
C或C++中,用双引号括起来的一串字符,编译后一定会在后面加个‘\0’么?
如:char str1[]="China"; //这个会加0
char str2[]="China" "Wonderful"; //这个"China"后没不会加0。
看来字符串的精髓不是字面上想的那个。
------解决方案--------------------
是啊!!!
------解决方案--------------------
编译不管框多少双引号 只要不用分号隔开 都看成一个吧
------解决方案--------------------
C或C++中,用双引号括起来的一串字符,编译后一定会在后面加个‘\0’么?
如:char str1[]="China"; //这个会加0
char str2[]="China" "Wonderful"; //这个"China"后没不会加0。
看来字符串的精髓不是字面上想的那个。
------解决方案--------------------
是啊!!!
------解决方案--------------------
编译不管框多少双引号 只要不用分号隔开 都看成一个吧
------解决方案--------------------
- C/C++ code
char str2[]="China" "Wonderful"; 这个就相当于是: char str2[]="ChinaWonderful"; 比如MFC里的CFileDialog里的过滤字符串有时会很长,为了看起来舒服,会分多行写: CFileDialog fileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, TEXT("所有视频|*.rmvb;*.rm;*.avi;*.wmv;*.mov;*.mpeg;*.mpg;*.mp4;*.flv;*.swf|") TEXT("所有音频|*.mp3;*.wma;*.wav;*.ogg;*.aac;*.mid;*.midi|") TEXT("rmvb(*.rmvb)|*.rmvb|") TEXT("rm(*.rm)|*.rm|") TEXT("avi(*.avi)|*.avi|") TEXT("wmv(*.wmv)|*.wmv|") TEXT("mov(*.mov)|*.mov|") TEXT("mpeg(*.mpeg;*.mpg;*.mp4)|*.mpeg;*.mpg;*.mp4|") TEXT("flash(*.flv;*.swf)|*.flv;*.swf|") TEXT("mp3(*.mp3)|*.mp3|") TEXT("wma(*.wma)|*.wma|") TEXT("wav(*.wav)|*.wav|") TEXT("ogg(*.ogg)|*.ogg|") TEXT("aac(*.aac)|*.aac|") TEXT("mid(*.mid;*.midi)|*.mid;*.midi|") TEXT("所有文件(*.*)|*.*||"));