C++ 字符数组和string

一、char 数组(C 风格字符串)函数
需包含头文件 include <cstring>,数组定义为 char s;,以 \0 结尾 。

  • 长度计算
    • strlen(s):返回字符串有效长度(不计 \0)。
    • 注意与 sizeof(s) 区分,后者返回数组总字节数 。
      例子:
      char a[6]="abcd";
      cout<<strlen(a)<<endl;  //输出:4
      cout<<sizeof(a);        //输出:6  
    
  • 复制操作
    • strcpy(dest, src):将 src 复制到 dest,dest 空间需足够大 。
    • strncpy(dest, src, n):最多复制 n 个字符 。
  • 拼接操作
    • strcat(dest, src):将 src 拼接到 dest 末尾,dest 剩余空间需足够 。
  • 比较操作
    • strcmp(s1, s2):比较两个字符串。相等返回 0,s1>s2 返回正数,s1<s2 返回负数(基于 ASCII 码) 。
    • strncmp(s1, s2, n):仅比较前 n 个字符 。
  • 查找子串和子字符
    • strstr(s1, s2);
      在 s1 找子串 s2,返回子串首地址;找不到返回 NULL
    • strchr(字符数组, 字符):查找字符 c 在字符串 s 中第一次出现的位置指针,未找到返回 NULL 。
    • strrchr(字符数组, 字符);找到字符串最后一次出现的 c,常用于找后缀小数点
  • 其他常用
    • memset(s, value, n):将数组前 n 个字节设置为 value(常用于初始化 memset(s, 0, sizeof(s))) 。注意:可以使用memset()将整型数组清0
      例子:
      char s[10];
      memset(s, 'b', 6);   //将字符数组前六位初始化为‘b’ 
      cout<<s[0]<<endl;    //输出:‘b’ 
      cout<<s[7]<<endl;    //输出:null
      memset(s,'b',sizeof(s));  //将整个数组初始化为‘b5’
    

二、cctype 字符判断函数(单个 char)

#include <cctype>
  • isalpha(c) 是否字母
  • isdigit(c) 是否数字
  • islower(c) 是否小写字母
  • isupper(c) 是否大写字母
  • tolower(c) 转小写
  • toupper(c) 转大写
posted @ 2026-09-28 18:30  似鬼年华  阅读(24)  评论(0)    收藏  举报