字符数组总结

1.特征

以‘\0’(ASCII码即为0)结尾,否则不是字符串,因此字符串数组的大小应严格大于字符数目


2.输入及赋值

字符数组不能直接赋值,替代方法如下

  • 初始化时赋值:可以直接在赋值时使用字符串,例如:
    int main()
    {
    	char a[100] = { "hello world" };
    	cout << a;
    	system("pause");
    	return 0;
    }
  • cin>>:从可以读取的位置开始(因此cin留下的回车空格等不会影响下一个cin读取)读到空格,回车,tab停止,并把其留在输入序列(这可能导致下一个输入失效!)在后面加cin.ignore()或者cin.get();
  • cin.get():单参数(或为空)时读取单个字符,包括\n,但只能用来读取char,返回值为是否读取成功 
  •                 多参数:cin.get(char*s, streamsize n, char delim) 最后一个参数可省去,则默认为\n,但是,一旦写入delim,将不会在\n 停止,而char delim也会像回车一样保留在输入队列中
  • cin.getline(char*s, streamsize n, char delim):delim的规则同上,区别是getline会将delim从输入队列中删除
  • strcpy ( char * destination, const char * source );source可以为一个字符串,字符\0也会存入destination,函数返回值为destination

3.相关函数
  • 头文件:<cstring>
  • strlen(char*s),返回值为字符数组中第一个\0之前(不包括\0)的字符个数
  • strcpy,同上
  • strcmp(char*s1, char*s2),返回0表示两字符数组第一个\0之前每个字符相同,若有不同,>0表示s1中的值较大,<0表示s2中较大
  • strcat(char*s1, char*s2),返回s1的地址,从s1第一个\0开始将s2拼接到s1
  • strchr(char*s,  int character),返回第一个出现的character的地址,若换为角标需与s地址相减,返回值也可以作为第一个参数再次使用
  • strrchr,同上,找到的是最后一个

4.string
头文件<string>
可以直接赋值,也可以用string[ ]确定某一个字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值