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', '
#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;
}
'}; //字符串 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++标准输入输出头文件。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 创业型互联网公司应该选择PHP, JavaEE还是.NET技术路线?

    通常JavaEE和.NET被定义为构建大型在线系统,因为其支持面向对象设计,异步通讯,MVC等都相对比较完善,而PHP通常用于构建比较轻量的业务,例如SNS服务。因为实施速度快,工程师社区规模大,开源

    2021年12月20日
  • 使用griddata进行均匀网格和离散点之间的相互插值

    使用griddata进行均匀网格和离散点之间的相互插值文章目录1griddata函数介绍2离散点插值到均匀网格3均匀网格插值到离散点4获取最近邻的Index插值操作非常常见,数学思想也很好理解。常见的一维插值很容易实现,相对来说,要实现较快的二维插值,比较难以实现。这里就建议直接使用scipy的griddata函数。1griddata函数介绍官网介绍2离散点插值到均匀网格definterp2d_station_to_gri…

  • 面试题JAVA_Java应届生面试

    面试题JAVA_Java应届生面试刚出炉的一套面试题(JAVA岗)

  • pocib业务流程图_财务流程图

    pocib业务流程图_财务流程图POCIB各阶段流程报关流程从广义上讲,报关是指进出境运输工具负责人、进出境口货物收发货人、进出境物品的所有人或者他们的代理人向海关办理运输工具、货物、物品进出境手续及相关手续的全过程。其中,进出境运输工具负责人、进出口货物收发货人、进出境物品的所有人或者他们的代理人是报关行为的承担者,是报关的主体,也就是报关人,也称报关单位。这里所指的报关人既包括法人和其他组织,比如进出口企业、报关企业,也包括…

  • Liquibase的简单使用[通俗易懂]

    Liquibase的简单使用[通俗易懂]`LiquiBase`是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通

  • tomcat部署war包访问显示404

    tomcat部署war包访问显示404在eclipse导出的maven项目war包,放到tomcat下启动,顺利启动且无报错,但是浏览器访问该项目时显示404原因:未在server.xml中配置这几个项目,导致服务器查找不到解决方法:&lt;HostappBase="webapps"autoDeploy="true"name="localhost"unpackWARs="true"&gt;…

发表回复

您的电子邮箱地址不会被公开。

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