字符、字符串函数

大城市里の小女人 提交于 2020-03-31 19:07:02



  • 头文件 #include<string.h>

字符串函数


  1. 字符串长度函数 strlen(str)(返回值是实际字符串长度不包括‘\0‘)


  2. 字符串拷贝函数

    • strcyp(dest, src) (将src拷贝到dest,'\0' 也一同拷贝)

    • strncpy(s1, s2, n) (复制指定长度字符串)


    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
    	char s1[] = "1234567";
    	char s2[] = "abc";
    	puts(strncpy(s1, s2, 2));
    	return 0;
    }
    

    在屏幕上打印出:ab34567


  3. 字符串连接函数 strcat(dest, src) (将src字符串连接到dest之后,dest原有的 '\0' 被覆盖,src的 '\0' 将被拷入dest中)

    • 注意dest的长度必须足够接收src的所有字符(包括 '\0')否则将可能引起严重的错误。有时不会触发运行时错误而运行出看似正确的结果,但即便后续的内存是可写的,但也许其中存着其他数据,写越界就有可能覆盖这些数据,引起其他bug,这是严重的安全隐患!
    • strncat(s1, s2, n) (附加指定长度字符串)

  4. 字符串比较函数

    • strcmp(str1, str2) (逐个字符比较ASCⅡ码)
      • str1 == str2,返回0
      • str1 > str2,返回正整数 1
      • str1 < str2,返回负整数 -1
      • 如果不是字符串对比则结果可能未知(比如用字符数组和字符串对比)
    • strcasecmp (忽略大写小比较字符串)
    • strncmp(s1, s2, n) (比较指定长度字符串)

  5. 返回字符串地址

    • strchr(str, c) (在字符中正序查找指定字符第一次出现的位置,返回值是地址)

    • strrchr(str, c) (在字符中逆序查找指定字符第一次出现的位置,返回值是地址)

    • strstr(s1, s2) (查找子字符串s2在s1中的位置,返回值是地址)



字符函数


头文件 #include<ctype.h>


字符检查函数

  • isalpha(c) (检查字符类型。大、小写字母与非字符分别返回1,2,0)
  • isupper(c) (检查字符类型。大写字母与非大写分别返回1,0)
  • islower(c) (检查字符类型。小写字母与非小写分别返回2,0)
  • isdigit(c) (检查字符类型。数字与非数字分别返回1,0)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!