我正在尝试使用char
数据类型在代码中输入一个字符串。但是,每当函数中正在处理输入时。它将字符分解为ascii(由于我不熟悉,所以不太确定(。例如
'z11'
转向
49'1'
当我在编译器的调试函数中检查它时。下面是我正在处理的代码。它们都被分隔在3个文件中。
标题
typedef struct node {
char x;
struct node *next;
}item, * queue;
void enqueue(queue* q, char x);
实现.cpp
void enqueue(Queue* q, char x) {
Queue temporary;
Queue proc;
temporary = (Queue)malloc(sizeof(item));
temporary->x = x;
temporary->next = NULL;
proc = *q;
if (proc == NULL) {
temporary->next = *q;
*q = temporary;
}
else {
while (proc->next != NULL)
proc = proc->next;
proc->next = temporary;
}
}
main.cpp
void main() {
Queue list = NULL;
enqueue(&list, 'z11');
display(list);
}
有没有可能让它表现得像一个普通/规则字符串,这样我就可以像concat一样轻松地操纵它,在输入中获得特定的字符,比如";z11";,我收到一封信";z";用于检查目的?基本上,我只想添加输入";z11";作为列表中的一个整体。如果我显示它,它应该是";z11";而且
'z11'
是字符常量,它的值是实现定义的,因为它包含多个字符。
char
只能存储一个字符。您应该使用std::string
来存储字符串。
malloc()
将不适用于std::string
(以及包含它的结构(。您应该使用new
在C++中分配对象。
还要注意,字符串(字符串文字(的表示方式类似于"z11"
(双引号而不是单引号(。