要声明变量,您必须指定变量的类型,然后指定变量的名称。如果你想要一个“char”类型的变量,称为“last”,可以通过以下语法来实现:
char last;
如果你想要一个指向某个数据类型的变量的指针,你可以像这样添加星号:
char *last;
现在你有了一个指针,你可以用它来指向内存中必须包含一个字符的地方。如果您试图在 c 中创建一个“字符串”,那只不过是一系列字符,它们在内存中连续排序。您可以使用 char 指针指向这一系列 char 中的第一个 char,然后您可以通过将此 char 指针作为输入参数来使用适用于字符串的特定函数(例如 strcpy 或 strlen)。
现在解决您的问题。假设您创建了一个这样的字符串:
char *str = "example";
你所做的是创建一系列字符,即
'e', 'x', 'a', 'm', 'p', 'l', 'e', '\0'
(其中 '\0' 是标记字符串结尾的 NULL 字符。这对于处理字符串的任何函数都必须识别字符串的结尾)。您创建的称为“str”的字符指针指向第一个字符,即“e”。记住,指针有这个 char 的地址,所有其余的 char 都存储在第一个 char 之后的地址空间中。
要访问此字符串中的特定字符,您必须取消引用指针“str”。如果你想要字符串中的第一个字符,你可以这样做:
char first = *char;
这会将第一个字符保存在一个名为“first”的字符类型变量中,在本例中为字母“e”。要获得第二个字符,请执行以下操作:
char second = *(char+1);
您实际上正在做的是“读取”(取消引用)您的 char 指针“str”指向的值 + 1 步大小“char”在内存中。在本例中,这意味着名为“second”的 char 类型变量现在包含(表示)字符串中的第二个字母,即“x”。
如果你想要一个字符串的大小,你可以使用函数 strlen。语法是这样的:
int length = strlen(str);
其中“str”是指向字符串中第一个字符(即“e”)的字符指针。 strlen 将返回字符串的长度,不包括仅标记字符串结尾的 NULL 字符 '\0'。这意味着在我们的示例中,长度将等于 7,因为“示例”一词中有 7 个字母。如果你想提取这个字符串的最后一个字母,现在你所要做的就是我们之前做的,但是记住在 C 中的索引从 0 开始。这意味着如果你有一个长度为 7 的字符串,最后一个元素此字符串将位于“索引”6。因此,要获取字符串的最后一个字符,您必须这样做:
char last = *(str+length-1);
或者如果您没有将长度保存到 int 类型的变量中,您可以这样做:
char last = *(str+strlen(str)-1);
如果你想要一个指针,指向字符串的最后一个字符,你必须初始化一个新的字符指针,让它指向“str”的最后一个字符所在的位置(内存地址)。按照与之前相同的逻辑,这是由原始字符串“str”的“index”6 处的 char 的内存地址给出的。所以你创建一个新的指针,并让这个指针指向这个内存地址,如下所示:
char *last = str+strlen(str)-1;
请记住,您需要在文件顶部包含头文件 string.h,如下所示:
#include <string.h>