首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这样的字符串该怎么定义

2012-03-04 
这样的字符串该如何定义?constchar*s1 \x1FFirst.... constchar*s2 \x20Fifth.... 编译警告:字符

这样的字符串该如何定义?
const   char   *s1   = "\x1FFirst.... ";
const   char   *s2   = "\x20Fifth.... ";

编译警告:字符值超出范围。
编译器把   First   和   Fifth的首字符也当作16进制   F   的转义字符了。

像这样的情况,该怎么定义才对呢?



[解决办法]
这应该算VC的bug了,我觉得。你这样吧:
const char *s1 = "\x1F " "First.... ";
const char *s2 = "\x20 " "Fifth.... ";
[解决办法]
转意符要用\
'\\ '表示字符 '\ '
[解决办法]
const char *s1 = "\1FFirst.... ";
const char *s2 = "\ Fifth.... ";
楼主是这个意思吗?
[解决办法]
编译器会将两个连续的字符串合成一个。但这步合成的动作会发生在字符串中的转义符被处理之后,因为那样应该就没啥问题了。
[解决办法]
打错了,“因为”-> “因此”。
[解决办法]
steedhorse(晨星)的可行
留下足迹 以后好查找
[解决办法]
居然会有转义识别错误 以前没发现过哦
[解决办法]
const char *s1 = "\x1FFirst.... ";
const char *s2 = "\x20Fifth.... ";

这样行吗?

const char *s1 = "\x01FFirst.... ";
const char *s2 = "\x020Fifth.... ";
[解决办法]
const char *s1 = "\\1FFirst.... ";
const char *s2 = "\\x20 " "Fifth.... ";

这样行吗?
[解决办法]
方法1:
晨星老大的:
const char *s1 = "\x1F " "First.... ";

方法2:
不要使用 16进制转义,
使用直接字符或者 8进制转义
[解决办法]
sprintf可以么?或strcat...

[解决办法]
8 进制转义:
const char *s1 = "\x1FFirst.... ";
const char *s2 = "\x20Fifth.... ";
==》
const char *s1 = "\37First.... ";
const char *s2 = "\40Fifth.... ";
[解决办法]
strcat( "\x20 ", "Fifth.... ");
[解决办法]
char *t = new char(100);
strcpy(t, "\x41 ");
cout < <t < <endl;//A
char *tt = "Fist ";
cout < <tt < <endl;//Fist
strcat(t,tt);
cout < <t < <endl;//AFist
char *ttt = "\x41Fist ";
cout < <ttt < <endl;//ist
[解决办法]
steedhorse(晨星) ( ) 信誉:141 Blog 2007-4-2 13:41:57 得分: 0



这应该算VC的bug了,我觉得。你这样吧:
const char *s1 = "\x1F " "First.... ";
const char *s2 = "\x20 " "Fifth.... ";


-----------------------------

^_^ 好办法~~
[解决办法]
steedhorse(晨星) ( )

GCC也有这样的问题
------解决方案--------------------


对,8进制转义总归不会有问题吧?偶没试,楼主可以试试。

热点排行