-2

我想处理一些 char 变量,并想获得一些函数列表,这些函数在处理 char 时可以完成这些任务。

  • 获取 char 的第一个字符(var_name[1] 似乎不起作用)
  • 获取char的最后一个字符
  • 检查 char1 是否与 char2 匹配(例如,如果“unicorn”与“bicycle”匹配的话

我很确定其中一些方法存在于 stdio.h 等库中,但谷歌不是我的朋友。

编辑:我的第三个问题意味着不是与 strcmp 直接匹配,而是单个字符匹配(例如,如果“hey”和“hello”)将 e 作为普通字母。

4

5 回答 5

3
  • 用于var_name[0]获取第一个字符(数组索引从0N - 1,其中N是数组中的元素数)。
  • 用于var_name[strlen(var_name) - 1]获取最后一个字符。
  • 用于strcmp()比较两个char字符串。

编辑:

要搜索字符串中的字符,您可以使用strchr()

if (strchr("hello", 'e') && strchr("hey", 'e'))
{
}

还有一个strpbrk()函数可以指示两个字符串是否有任何共同字符:

if (strpbrk("hello", "hey"))
{
}

假设您的意思是 a char[],而不是char单个字符的 a 。

于 2012-04-26T19:54:28.747 回答
1
  1. C 使用基于 0 的索引,var_name[0] 为您提供第一个字符。
  2. strlen() 为您提供字符串的长度,连同我对 1 的回答。表示
    char lastchar = var_name[strlen(var_name)-1]; http://www.cplusplus.com/reference/clibrary/cstring/strlen/

  3. strcmp(var_name1, var_name2) == 0. http://www.cplusplus.com/reference/clibrary/cstring/strcmp/

于 2012-04-26T19:57:03.110 回答
0

您正在寻找的是C 运行时库中的字符串函数。这些是在 string.h 中定义的,而不是在 stdio.h 中。

但是您的问题清单很简单:

var_name[0] 非常适合访问数组中的第一个字符。var_name[1] 不起作用,因为 C 中的数组是从零开始的。

数组中的最后一个字符是:

char c;
c = var_name[strlen(var_name)-1];

相等性测试很简单:

if (var_name[0] == var_name[1])
   ; // they match
于 2012-04-26T19:58:58.917 回答
0

我很确定其中一些方法存在于 stdio.h 等库中,但谷歌不是我的朋友。

C 标准库 (libc) 中的字符串函数在头文件中进行了描述。如果您使用的是 unix-ish 机器,请尝试man 3 string在命令行输入。然后,您可以再次使用该man程序来获取有关特定功能的更多信息,例如man 3 strlen. (“3”只是告诉man您查看“第 3 节”,它描述了 C 标准库函数。)

于 2012-04-26T20:00:17.937 回答
0

C 和 C++ 字符串是零索引的。保存特定长度字符串所需的内存必须至少是字符串长度和字符串终止符 \0 的一个字符。所以,第一个字符是数组[0]。

正如@Carey Gregory 所说,基本的字符串处理函数在string.h 中。但这些只是处理字符串的原语。C 是一种足够低级的语言,您有机会根据 string.h 中的函数构建自己的字符串处理库。

例如,您可能希望将字符串指针传递给函数,以及保存该健全字符串的缓冲区的长度,而不仅仅是字符串长度本身。

于 2012-04-26T20:12:09.117 回答