新手-关于c++ string类的基础问题,求解!

问题描述

关于c++ string类的基础问题,求解!

string name;
string dessert;
和const int artsize = 20;
char name[artsize];
char dessert[artsize];是不是一样,区别在哪里?
cin.getline(name,artsize);
cout<<' ';
cin.getline(dessert,artsize);
和getline(cin,name);
cout<<' ';
getline(cin,dessert);是不是效果一样的?

解决方案

string 自身就是一个array of character。
但是char*或者char[] 需要定义size,也就是你这里的const int artsize =20
你char name[artsize]唯一会出现的问题就是你的size 是20, 如果你输入的string大小超过了20就会出现memory leak。
如果你的程序目的只是为了满足输入string,然后进行处理,直接就用string型,没必要用char array.

对于第二种我没有这么用过, 一般都是cin或者printf。getline可以接受两种,具体可以看cplusplus那个网站。link我直接给你
ref. http://www.cplusplus.com/reference/string/string/getline/

解决方案二:

在c语言中,是没有string的,所有的string都是用char array。
希望这些帮助到你。

时间: 2025-01-21 08:30:18

新手-关于c++ string类的基础问题,求解!的相关文章

java-JAVA String类相关疑问

问题描述 JAVA String类相关疑问 新手疑问 对String类的replace方法有点不懂 如果我想用null替换一些有不定长的字符串 比如字符串里有许多() ()里也有内容 该怎么替换呢? 解决方案 asd(ahd)asd(hjk)qws String str="asd(ahd)asd(hjk)qws "; String[] arr={"(ahd)","(hjk)","w"}; for(int i=0;i<ar

Java基础之010-深入理解Java的String类

Java基础之010-深入理解Java的String类                                        老帅        1. 首先String不属于8种基本数据类型,String是一个类.  因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性.  2. new String()和new String("")都是申明一个新的空字符串,是空串不是null:  3. String对象实例化   

Java基础之009-浅尝Java的String类

Java基础之009-浅尝Java的String类                                        老帅 一.String类   1. 获取:        1.1 获取字符串中字符的个数(长度).                            int length();        1.2 根据位置获取字符.                            char charAt(int index);        1.3 根据字符获取在字符串中

Java的string类常量池及不可变性

1.String常量池     当使用new String("hello")时,JVM会先使用常量池来管理"hello"直接量,再调用String类的构造器来创建一个新的String对象,新创建的对象被保存在堆内存中.即new String("hello")一共产生了两个字符串对象. [常量池constant pool]管理在编译时被确定并保存在已编译的.class文件中的一些数据,包括关于类.方法.接口中的常量,和字符串常量.  [字符串常量池

Java进阶学习(一) String类

之前的Java基础系列中讨论了Java最核心的概念,特别是面向对象的基础.在Java进阶中,我将对Java基础进行补充,并转向应用层面. 大部分编程语言都能够处理字符串(String).字符串是有序的字符集合,比如"Hello World!".在Java中,字符串被存储为String类对象.调用字符串对象的方法,可以实现字符串相关的操作. String类包含在java.lang包中.这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class).我

AS3.0中Tween类的基础 教程

AS3.0中Tween类的基础 教程 写个关于ActionScript3.0 中的Tween类的小教程吧,还是抛砖引玉,偷摸追赶一下潮流.(个人认为AS3.0是以后支持互动设计的主流技术) 说道Tween类,看字面的意思就是实现补间动画的.在Flash CS3中,Adobe已经为大家开发好了一套可以轻松实现运动效果的类.这套类包位于fl.transition.*中.其实,这些包 中的类效果的原理都是监听ENTER_FRAME事件的.在动画播放时,按帧频改变目标的属性,从而产生动画的效果. 负责动

c#封装-新手,C#的类中有关添加字段和封装属性的问题

问题描述 新手,C#的类中有关添加字段和封装属性的问题 各位大神,我是一个学习c#的新手,我想请教一个问题,在一个类中如何定义一个私有字段,然后再对这个字段封装属性,比如字段-name,能把相关代码下写一下吗? 解决方案 class A{ private string _Name; public string Name { get { return _Name; } set { _Name = value; } }} 解决方案二: 但是,其实私有的后备字段不要写,上面的代码,在C# 3.0以上更

string类能否被继承? 很急

问题描述 javastring类能否被继承? 解决方案 解决方案二:很肯定得告诉你:不能,String是final的,不允许继承...解决方案三:publicfinalclassStringextendsObject不能解决方案四:引用1楼gray_sky的回复: 很肯定得告诉你:不能,String是final的,不允许继承... +解决方案五:final类,不能被继承解决方案六:该回复于2011-03-26 11:11:37被版主删除解决方案七:该回复于2011-03-26 11:11:37被

string类的两个问题

问题描述 看C++ primer 第四版(英文版)遇到了几个问题,请赐教!问题1:用string,vector等包含的库是不是在iostream中有说明呢?在C++ primer的p132中提及When we compare library strings...这个意思不是要包含strings库吗?但是我在预编译加上#include<strings>g++会报错(没有这个文件)?问题2:在C++ primer的p86指出当一个string对象st1用另外一个string类对象str2赋值时所作