2015-12-09 61 views
-3

如何将特殊字符赋给C中的变量? 我试图给变量符号分配一个像~~~~~或者@@@@@或*****或者;;;;;;;的字符。 我所做的是char symbol = "~~~~~~~~~~"; 但这并没有工作,所以我试图改变双引号改为单是这样的:如何将特殊字符分配给C中的变量?

char symbol = '@@@@@@@@@'; 

但这并没有工作,要么;

+0

'为const char * C = “@@@@@@@”;' –

+0

一个'char'可以代表一个* *字符,比如' '@'或'a'。你所有的“角色”都由几个字符组成。如果你解释你将要对他们做什么,你会得到更好的帮助。 – molbdnilo

回答

4

它的工作原理,但你试图把多个字符放入一个没有意义的单个字符。

尝试:

char symbol = '@'; 
const char symbols[] = "@@@@@@"; 
const char* symbols2 = "@@@@@@@"; 

请注意,你需要使用单字符和字符串双引号"单引号'

还要注意,char通常定义为8位整数,因此您只能保存通常的ASCII字符。如果您需要Unicode,您应该使用char数组来容纳所需的所有位,并且最好使用一个处理库,转换和您可能想要执行的任何其他操作。

+0

不,我在if语句中使用这些变量,并根据if更改值。 –

+0

您可以复制字符数组。我使用const,因为在上面的情况下指针将指向编译器静态常量。分配一个可修改的数组'char * symbol =(char *)malloc(max_length_of_your_string + 1);'然后使用memcpy复制你想要的任何内容。 C字符串有点恐怖,容易搞砸。如果你可以使用C++字符串,它会让你的生活变得更容易。 – Sorin

1

如果要分配多个值,则应该使用指向字符的指针。

const char *smth = "@@@@"; 

如果你只需要一个,然后只需char smth = '@';

相关问题