在c++中处理时,char数据类型输入被转换为另一种类型



我正在尝试使用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"(双引号而不是单引号(。

最新更新