字符的工具函数

时间:2012-04-26 19:51:56

标签: c char

我想处理一些char变量,并希望得到一些函数列表,这些函数可以在处理字符时执行这些任务。

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

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

编辑:我的第3个问题意味着不是与strcmp直接匹配,而是单个字符匹配(例如,如果“嘿”和“你好”)e是普通字母。

5 个答案:

答案 0 :(得分:3)

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

编辑:

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

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

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

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

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

答案 1 :(得分:1)

  1. C使用基于0的索引,var_name [0]为您提供第一个char。
  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/

答案 2 :(得分:0)

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

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

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

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

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

测试平等很简单:

if (var_name[0] == var_name[1])
   ; // they match

答案 3 :(得分:0)

  

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

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

答案 4 :(得分:0)

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

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

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