6.1 C++ string类型变量的定义以及输入与输出
参考:http://www.weixueyuan.net/view/6389.html
总结:
在C++中提供了一个型的内建数据类型string,该数据类型可以替代C语言中char数组。
与C风格的char型数组不同,string类型的变量结尾是没有 ’\0’ 的。
我们可以通过s变量来调用length函数,从而返回s变量的长度。
转换函数c_str,该函数将string类型的变量转换为一个const的字符串数组的指针。
在C++中,在输入输出方面,我们可以像对待普通变量那样对待string类型变量,其输入输出仍然可以用输入输出操作符进行处理。
输入操作符是默认忽略空格的,当遇到空格时就开始存储字符串。
例1:
#include <iostream>
#include <string>
using namespace std; int main()
{
string s1;
string s2 = "string";
string s3 = s2;
string s4 (, 's');
return ;
}
在本例中介绍了几种定义string类型变量的方法,变量s1只是定义但是没有进行初始化,系统会将默认值赋给s1,默认值是“”(空字符串)。变量s2在定义的时候就被初始化为了"string",与C风格的char型数组不同,string类型的变量结尾是没有 ’\0’ 的,string类型的本质是一个string类,而我们定义的变量则是一个个的string类的对象。变量s3在定义的时候直接用s2进行初始化了,因此s3的内容也是"string"。变量s4初始化为10个‘s’字符组成的字符串,也即“ssssssssss”。
从例1中我们也可以看出string类型变量可以直接通过赋值操作符“=”进行赋值。string类型变量可以用string类型变量或C风格字符串进行赋值。如s2则是用一个字符串常量进行初始化的,而s3变量则是通过s2变量进行初始化。
与C风格的字符数组不同,当我们需要知道字符串长度时,string类为我们提供了length函数。如下面例2所示,我们可以通过s变量来调用length函数,从而返回s变量的长度。因为string类型的变量末尾是没有 ’\0’ 字符的,因此其返回值就是变量的真实长度,而不是长度+1。
例2:
string s = "string";
int len = s.length();
转换为 char 数组字符串
虽然C++提供了string类型来替代C语言中的字符数组形式的字符串,但是我们在程序设计过程中还是不可避免地会碰到需要用字符数组形式字符串的地方。为此,系统为我们提供了一个转换函数c_str,该函数将string类型的变量转换为一个const的字符串数组的指针。
例1:
string filename = "input.txt";
ifstream in;
in.open(filename.c_str());
在本例中我们为了打开文件的函数open,因此必须将string类型变量转换为字符串指针。
C++ string类型变量的输入与输出
例1:
#include <iostream>
#include <string> using namespace std; int main()
{
string s;
cin>>s;
cout<<s<<endl;
return ;
}
如本例所示,输入一个字符串,然后再将输入的字符串输出。运行程序结果如下:
string string↙
string
这个例子的运行结果输出只是一个string,而我们输入的是两个string,并且中间用空格隔开了。其实问题就出现在空格上,输入操作符是默认忽略空格的,当遇到空格时就开始存储字符串。因此后面一个输入的string没有被存储进去。
6.1 C++ string类型变量的定义以及输入与输出的更多相关文章
- java中String类型变量的赋值问题
第一节 String类型的方法参数 运行下面这段代码,其结果是什么? package com.test; public class Example { String str = new String( ...
- 【C语言入门教程】7.1 结构体类型变量的定义和引用
前面学习了变量和数组这些简单的数据结构,它们的特点是必须使用规定的数据类型.例如数组被定义为整型后,它的所有存储单元都是由整型构成.现实生活中某一类事物的共同属性可能是由不同的数据类型组成的集合,或者 ...
- typedef std::string AddressLines[4]定义了一个string数组,大小为4
int main() { typedef std::]; std::]; std::string *pal1 = new AddressLines; delete [] pal; delete [] ...
- c++ string类型的定义及方法
1.c++ 有两种风格的字符串形式 c风格字符串 定义及初始化 char a[]={'h','e','l','l','o','\0'} 或者 char a[]="hello&quo ...
- Eclipse的Jar包解压出System.js里String与Boolean定义分号可有可无吗?
Eclipse的Jar包解压出System.js里String与Boolean定义分号可有可无吗? org.eclipse.wst.jsdt.core_1.3.300.v201410221502\li ...
- Java中关于Integer, String 类型变量 == 与 equals 判断的坑
== 与 equals()的联系: ==: 我们都知道Java中 == 对用于基础数据类型(byte, short, int, long, float, double, boolean, char)判 ...
- String类型变量的使用
1.String属于引用数据类型,翻译为:字符串 2.声明String类型变量时,使用一对"" 3.String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+ 4.运算 ...
- 【2017-2-17】VS基本应用及C#基础第一节(定义变量、输入及输出)
一VS基本应用 (一)新建项目 新建项目可有多种方法例如: 1. 在VS起始页面建立新项目 2. 在集成环境中,通过"文件"/"新建"/"项目&q ...
- 1.java.io包中定义了多个流类型来实现输入和输出功能,
1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G) A.输入流和输出流 B ...
随机推荐
- (转)C#反射使用时注意BindingFlags的用法
c#反射查找方法时,默认只能查到public方法.如果想要查找private方法,需要设定BindingFlags. 即: BindingFlags.Public|BindingFlags.Insta ...
- 《HTTP 权威指南》笔记:第十三章 摘要认证体制
前言 基本认证存在缺陷,摘要认证为了解决基本认知的一些缺陷,进行了进一步的完善,更加安全. 流程 摘要认证的特点是:永远不会以明文方式在网络上发送密码原理:通过发送一个「指纹」或者「密码的摘要」来验证 ...
- sql---->sql-summary&mysql-summary
数据库操作: 1.创建数据库,并修改默认字符编码 create database 数据库名 [charset=字符编码]; ee: create database dog charset=utf8; ...
- “安利”一个CDN服务商网站
一.CDN简介 CDN的全称是Content Delivery Network,即内容分发网络.CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发.调度 ...
- hdoj5785
题意:略 先用题解的办法,manacher,然后tag,add数组.但是比较难办的是manacher加了新的字符.这样的话cntL和cntR不是实际的值,但是没关系,原本的字符都在奇数位置,这样cnt ...
- PHP工厂模式的使用场景,使用方法
所谓工厂模式和生产有关.生产什么呢?生产出来的是一个实例对象.通过什么设备生产?通过一个工厂类生产simpleFactoty.怎么生产呢?工厂类调用自身静态方法来生产对象实例static functi ...
- rsync+inotify
一.rsync 1.1rsync是啥 相当于cp.scp.rm等工具,但优于这些工具,主要用在数据备份 1.2.rsync安装 yum -y install rsync --update 客户端删除文 ...
- zsh切换bash bash切换zsh
切换bash(需要sudo) chsh -s /bin/bash 切换zsh(不需要sudo) chsh -s /bin/zsh 注意:如果输入命令和密码后提示:no change made. 请加上 ...
- Highcharts 配置选项详细说明
Highcharts 配置选项详细说明 Highcharts 提供大量的配置选项参数,您可以轻松定制符合用户要求的图表,本章节为大家详细介绍Highcharts 配置选项使用说明: 参数配置(属性+事 ...
- CRM函数CRM_ORDER_MAINTAIN封装
抬头结构:ZCRM_MAINTAIN_H flag header: 项目表:ZCRM_MAINTAIN_I 合作伙伴:ZCRM_MAINTAIN_P price:ZCRM_MAINTAIN_PR FU ...