C++中的数组和字符串,strlen函数,iostream头文件

C++语法是在C语言的基础上发展而来的,兼容C语言语法。在数组和字符串的概念上也一样。字符数组的定义:

大家好,又见面了,我是你们的朋友全栈君。

1.内容简介:

C++语法是在C语言的基础上发展而来的,被称为“带类的C”,兼容C语言语法。本文介绍数组和字符串的基本知识。

2.C,C++字符数组和字符串:
字符串以’\0’结尾,而’\0’表示的是null字符,注意,这里不是null,而是null字符。所以,我们可以这样描述: 字符串是以null 字符 ‘\0’ 结尾的一维字符数组。在C和C++中,数组和字符串的概念上也一样。

字符数组的定义:

char arr[] = “Hello”;//有5个字符d的字符数组

字符串的定义:

char arr[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’}; //末尾是‘\0’

也可以这样定义:

char *str = “Hello”;//含有6个字符,最后一个是结束符’\0’

这样因为,C/C++编译器会自动把 ‘\0’ 放在字符串的末尾。

举例如下:

#include <stdio.h>
#include <unistd.h>

int main() {
    char arr1[6] = {'H', 'e', 'l', 'l', 'o'}; //数组
    char arr2[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; //字符串
    char *arr3 = "Hello"; //字符串

    printf("arr1: %s\n",arr1);
    printf("arr2: %s\n",arr2);
    printf("arr3: %s\n",arr3);

    
    return 0;
}

运行结果:

arr1: Hello
arr2: Hello
arr3: Hello

3.C++的strlen函数:

strlen()函数:
在C++中,提供了String类,以及用于计算字符串长度的strlen函数,对于上面arr和str的定义,strlen计算出的长度都是5,即不包括’\0’。

举例如下:

#include <iostream>
int main(int argc, const char * argv[]) {
    char arr[] = "Hello";
    char *str = "Hello";
    std::cout << "hello arr:"<<strlen(arr)<<"\n";
    std::cout << "hello str:"<<strlen(str)<<"\n";
    
    return 0;
}

运行效果:

hello arr:5
hello str:5

注:iostream是C++标准输入输出头文件。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126633.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 补番技巧

    补番技巧好想像别的大神一样写写技术博客啊,用代码来装点我的文章,可惜才疏学浅,我居然一点点的那个水平都没有,也只好写写这些每天所做的堕落的事情的方法了。。。。  1、补番强烈推荐B站,也就是大家常说的哔哩哔哩动画,网址为 http://www.bilibili.com/ ,原因有三个。第一:B站的大多是视频是没有广告的,所以不会让广告影响心情。第二:B站的弹幕文化非常有趣,有趣的空

    2022年8月23日
    12
  • 太极阴转阳[通俗易懂]

    太极阴转阳[通俗易懂]太极是Android手机的一个类似于xposed框架的APP,既然名为太极,太极分两仪,太极阴和太极阳。而太极阴是一个无需Root、不用解锁Bootloader,也不需要刷机就能使用Xposed模块的一个APP,而太极阳则需要在太极阴的基础上解锁BL刷机,挂载magisk(俗称面具)的一个更加强大的类xposed框架,但是太极阴和太极阳是同一个apk安装包。那么怎么使太极阴转阳呢?下面…

    2022年6月4日
    121
  • 方法区元空间实现之jdk7和8字符串常量池、运行时常量池、静态变量到底在哪?

    方法区元空间实现之jdk7和8字符串常量池、运行时常量池、静态变量到底在哪?方法区(落地实现jdk7永久代,jdk8元空间),元空间并不在虚拟机中,而是使用本地内存1、此区域是线程共享的。储存已加载的类信息、常量、静态变量、即时编译器编译后的代码等数据;2、常量池:编译器生成的各种字面量和符号引用;3、关于字符串常量池和运行时常量池的位置说明:jdk1.6存在永久代,字符串常量池、运行时常量池都是在永久代中;jdk1.7存在永久代,字符串常量池被移动到了堆当中,运行时常量池还是在永久代中;jdk1.8不存在永久代,实现形式是元空间,字符串常量池仍然在堆当中,运行.

    2022年5月23日
    43
  • mysql set 变量_hive声明变量

    mysql set 变量_hive声明变量1.类型声明set不需要声明类型,declare必须指定类型2.位置set位置可以任意,declare必须在复合语句的开头,在任何其它语句之前3.作用范围DECLARE定义的变量的作用范围是BEGIN…END块内,只能在块中使用。SET定义的变量用户变量,作用范围是会话/全局  如SET@var=12的定义,则var的作用域为整

    2022年8月20日
    16
  • 建立本地数据库「建议收藏」

    建立本地数据库「建议收藏」首先下载安装MySQL,参考:http://www.runoob.com/mysql/mysql-install.html,安装完成后直接打开(安装过程中要求设置用户名和密码,此时输入的密码要记住,后面要使用)然后下载NavicatforMySQL,本人觉得这个比较简单,很适合初学者,安装完成之后点击File(文件)–新建文件,连接名可不填,主机名:localhost,用户名是安装MySQL…

    2022年6月1日
    32
  • SQL基础教程_一般sql培训多少钱

    SQL基础教程_一般sql培训多少钱下面是我看到其他博主写的博客,感觉sql总结的不错,对我很有帮助,就把它拿过来了,以便下次使用,借鉴网址:http://www.cnblogs.com/minuobaci/p/7224956.html

    2022年8月2日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号