从char *创建包含转义字符的char

时间:2011-05-12 18:54:24

标签: c pointers char

考虑以下char *示例:

char* s = "\n";

如何将其转换为表示新行字符的单个字符,如下所示:

char c = '\n';

除了处理换行符之外,我还需要能够将任何前面带有转义字符的字符转换为char。这怎么可能?

4 个答案:

答案 0 :(得分:9)

char c = *s;有效。

字符串中的'\n'只是源格式中的两个字符:编译后它是一个字符;所有其他逃脱角色都一样。

字符串"fo\111\tar"在编译后有7个字符(源代码中可见6个字符'f''o''\111''\t''a''r')以及null终止符。)

答案 1 :(得分:3)

取消引用它:

char* s = "\n";
char c = *s;

答案 2 :(得分:2)

正如其他人所说,换行实际上只是内存中的一个字符。要从字符串指针获取单个字符,您可以像访问数组一样访问指针(当然,假设为指向的字符串分配了内存):

char* s = "\n";
char  c = s[0];

答案 3 :(得分:1)

你的意思是什么?

char * s = "\n";
char c = *s;