c - 如何在 C 中将 char 数组转换为普通 char

标签 c

假设我有:

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/

相关文章:

c - 开发过程中的内存泄漏

c - struct sockaddr_in -/usr/include/netinet/in.h 中的 "sin_family"在哪里?

c - 对 strftime() 的输出结果感到困惑

arrays - Static 在声明字符数组时有什么用?

c - 如何用C语言打开nano文件

c - 替换 fflush(stdin)

c# - 从 c char* 到 string/IntPtr c# 的转换

c - 简单的 C 数据类型

c - 链接 .c 和 .h 文件

c - (char指针和int相加)是什么,循环是什么?c是什么?