假设我有:
char myName[] = "Jason Marks ";
我想将其转换为普通字符。以下内容将不起作用:
char fullName = myName[];
如何才能将整个“Jason Marks”转移到新变量中? 另外,是否可以从新变量中删除字符?
例如,删除第一个字符并保留:
"ason Marks "
最佳答案
不可能将字符串变量存储在 char
中。由于 char
能够保存单个字节,而您尝试存储的是一些 n
字节的字符串。
您可以使用指针来执行此操作:
char array[] = "My Name";
char *ptr = array;
现在,如果您只需要 "y Name"
,只需将 ptr
加 1,即 ptr++;
现在如果您打印 ptr
使用 printf
您将得到 "y Name"
。
注意:您也可以使用char *ptr = "My Name";
,但问题是这将存储字符串"My Name"
位于只读位置,即 ptr
将指向不可修改的位置。
因此,总而言之,您不允许执行以下操作: ptr[0] = 'B';
但是您可以执行 ptr++;
编辑:回应 Jason Marks 的评论:
您可以通过将最后一个字符替换为 \0
字符来实现这一点,即
ptr[strlen(ptr) - 1] = '\0';
关于c - 如何在 C 中将 char 数组转换为普通 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20015773/