c++存储字符串的方法( 读取字符串、char 数组、string 类型) 您所在的位置:网站首页 char如何定义字符串 c++存储字符串的方法( 读取字符串、char 数组、string 类型)

c++存储字符串的方法( 读取字符串、char 数组、string 类型)

2023-07-26 16:04| 来源: 网络整理| 查看: 265

c++存储字符串的方法 0、 读取字符串1、char 数组2、string 类型

0、 读取字符串

c++ 读取字符串的方式有很多,除了常用的scanf()、cin>>,还有其他函数,参见:C++基础:各种输入方法总结,cin、cin.get()、cin.getline()、getline()、gets()、getchar()。

总结:

函数名数据类型是否读入空格是否读入回车读入是否保存注意解决方法scanf()不读入不读入不保存cin>>int,float,char,char*,string等诸多类型不读入不读入不保存当缓冲区中有残留数据时,cin函数会直接取残留数据,而不会请求键盘输入cin.sync()清空输入缓冲区cin.get(字符数组名,接收长度,结束符)char*自定义自定义保存1.“结束符”为可选参数,默认回车 2.回车会保存3.输入的字符串超长时,不会出错。继续执行cin时,直接从缓冲区中取数据在语句后面加:cin.get()或写到一块:cin.get(ch2,6).get()cin.getline(字符数组名,接收长度,结束符)char*自定义自定义保存输入超长出错,且后面的cin操作不执行getline(istream is,string str,结束符)string自定义自定义保存在string库函数下,而非istream,调用前加 #include < string>gets(char *ch)char*

注:结束符(Space、Tab、Enter)

1、char 数组

为char数组赋初值有以下8种情况。

#include #include int main() { char c1[]={'h','e','l','l','o'}; char c2[5]={'h','e','l','l','o'}; char c3[]={'h','e','l','l','o','\0'}; char c8[]={'h','e','l','l','o','\0','a','b','c'}; char c4[]="hello"; char c5[6]="hello"; char c6[5]; char c7[10]; scanf("%s",c6); scanf("%s",c7); printf("c1:%s,长度:%d,占内存:%d\n",c1,strlen(c1),sizeof(c1)); printf("c2:%s,长度:%d,占内存:%d\n",c2,strlen(c2),sizeof(c2)); printf("c3:%s,长度:%d,占内存:%d\n",c3,strlen(c3),sizeof(c3)); printf("c8:%s,长度:%d,占内存:%d\n\n",c8,strlen(c8),sizeof(c8)); printf("c4:%s,长度:%d,占内存:%d\n",c4,strlen(c4),sizeof(c4)); printf("c5:%s,长度:%d,占内存:%d\n\n",c5,strlen(c5),sizeof(c5)); printf("c6:%s,长度:%d,占内存:%d\n",c6,strlen(c6),sizeof(c6)); printf("c7:%s,长度:%d,占内存:%d\n\n",c7,strlen(c7),sizeof(c7)); printf("c7[5]:%d,c7[6]:%d,c7[7]:%d,c7[8]:%d,c7[9]:%d\n",c7[5],c7[6],c7[7],c7[8],c7[9]); return 0; }

系统通过判断是否遇到’\0’,来决定是否终止字符串输出。我们平时使用时并没有专门加过’\0’,那么:

一、怎样为char数组赋值,系统会自动在结尾加上’\0’呢?不同赋值方式实际占用内存是怎样的呢? 当以字符串形式在代码中为数组赋值时,系统会自动为’\0’开一个存储空间。其他方式该是多少就是多少。

二、不同方式为char数组赋值,字符串长度是否一样呢? 字符串的长度都相同,且字符串的长度不包括’\0’。

在这里插入图片描述

2、string 类型

c++可以通过包含头文件string的方式定义string类型。

1)使用length()、size()函数可以获取字符串长度,也可以将string转为char[]后使用strlen()求长度; 2)使用str[i]获取指定位置的字符。

具体使用方法及函数介绍,参见:C++string类总结。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有