C++中string类

1.C中通过字符数组来存储字符串,而C++中通过string类来存储并处理字符串。<string>

#include<string>
#include<iostream>

using namespace std;

int main()
{
    string str1,str2;    //空字符串
    string str3 = "Hello C++!";        //初始化
    string str4("I am");    //初始化
    str2 = "Today";        //赋值
    str1 = str3 + " " +str4;    //组合字符串
    str1 += " 8 ";
    cout<<str1 + str2 + "!"<<endl;
    return 0;
}
/*
输出:
E:\myDocuments\GUN\C++>Demo.exe
Hello C++! I am 8 Today!

E:\myDocuments\GUN\C++>

*/

  两种初始化方法,直接用+和=操作。

2.文件读写<fstream>,它会自动包含<iostream>,书中建议如果是有cout和cin最好显示引入<iostream>

  ①为了读而打开一个文件,创建对象ifstream,用法与cin相同,数据是从磁盘到内存里面

  ②为了写而打开一个文件,创建对象ofstream,用法与cout相同,数据时从内存到外部磁盘中。

//copy one file to another ,a line at one time
#include<iostream>
#include<fstream>

using namespace std;

int main()
{
    ifstream In("Demo.cpp");    //读取Demo.cpp文件
    ofstream Out("Demo2.cpp");    //写入文件Demo2.cpp文件
    string STR1;
    while(getline(In,STR1))
        Out<<STR1<<"\n";

    return 0;
}
/*
输出:
E:\myDocuments\GUN\C++>g++ Demo.cpp -o  Demo.exe

E:\myDocuments\GUN\C++>Demo.exe

E:\myDocuments\GUN\C++>dir
 驱动器 E 中的卷是 DATA
 卷的序列号是 EC10-1C79

 E:\myDocuments\GUN\C++ 的目录

2015-08-25  13:59    <DIR>          .
2015-08-25  13:59    <DIR>          ..
2015-08-25  13:58               333 Demo.cpp
2015-08-25  13:58           497,380 Demo.exe
2015-08-25  13:59               333 Demo2.cpp   --------------------新添的文件
2015-08-21  09:52               111 GUN.bat
               4 个文件        498,157 字节
               2 个目录 81,163,862,016 可用字节

*/

3.string对象具有动态特性,不必担心string的内存分配

  

//把一个文件的拷贝到一个string对象中
#include<iostream>
#include<fstream>
#include<string>

using namespace std;

int main()
{
    ifstream In("Demo.cpp");    //读取Demo.cpp文件

    string STR,line;
    while(getline(In,line))
        STR += line + "\n";

    cout<<STR;

    return 0;
}
/*
输出:
E:\myDocuments\GUN\C++>g++ Demo.cpp -o  Demo.exe

E:\myDocuments\GUN\C++>Demo.exe
//把一个文件的拷贝到一个string对象中
#include<iostream>
#include<fstream>
#include<string>

using namespace std;

int main()
{
        ifstream In("Demo.cpp");        //读取Demo.cpp文件

        string STR,line;
        while(getline(In,line))
                STR += line + "\n";

        cout<<STR;

    return 0;
}
E:\myDocuments\GUN\C++>

*/
时间: 2024-09-14 04:27:32

C++中string类的相关文章

hadoop中Text类 与 java中String类的区别

hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.例如 unicode就是一个字符集,它的目标是涵盖世界上所有国家的文字和符号: 字符编码:是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对.即在符号集

Java中String类学习总结

java中String类的使用频率非常高,本人在学习此模块时,认为下列几点知识值得注意: 一.String是不可变对象 java.lang.String类使用了final修饰,不能被继承.Java程序中的所有字面值,即双引号括起的字符串,如"abc",都是作为String类的实例实现的.String是常量,其对象一旦构造就不能再被改变.换句话说,String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创造了一个全新的String对象,以包含修改后的字符串内容.而最

【转载】Java中String类的方法及说明

转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.构造函数     String(byte[ ] bytes):通过byte数组构造字符串对象.     String(char[ ] value):通过char数组构造字符串对象.     String(Sting original):构造一个original的副本.即:拷贝一个original.     String(Strin

C++面试中string类的一种正确写法

C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源.具体来说: 能像 int 类型那样定义变量,并且支持赋值.复制. 能用作函数的参数类型及返回类型. 能用作标准库容器的元素类型,即 vector/list/deque 的 value_type.(用作 std::map 的 key_type 是更进一步的要求,本文从略). 换言之,你的 String 能让以下代码编译运行通过,并且没有内存方面的错误. vo

java中String类小结

构建一个字符串 1.用字符串直接量: String message = new String("Welcome to java"); 2.用字符串直接量: String message = "Welcome to java"; 3.用字符数组 Char[] charArray = {'m', 'y'}; String message = new String(charArray); 不可变字符与限定字符串 String对象是不可变的,内容不能改变 java虚拟机为了

Java中String类与Integer类的几个方法

计算诸如-123,456,789 + 123,123的值 import java.math.BigInteger; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner cin = new Scanner(System.in); String str1, str2; BigInteger a, b; while(cin.hasNext()){ str1 = cin.

JDK中String类的源码分析(二)

1.startsWith(String prefix, int toffset)方法 包括startsWith(*),endsWith(*)方法,都是调用上述一个方法 1 public boolean startsWith(String prefix, int toffset) { 2 char ta[] = value; 3 int to = toffset; 4 char pa[] = prefix.value; 5 int po = 0; 6 int pc = prefix.value.l

关于Java中String类的hashCode方法

首先来看一下String中hashCode方法的实现源码 1 public int hashCode() { 2 int h = hash; 3 if (h == 0 && value.length > 0) { 4 char val[] = value; 5 6 for (int i = 0; i < value.length; i++) { 7 h = 31 * h + val[i]; 8 } 9 hash = h; 10 } 11 return h; 12 } 在Stri

c++中string类的详解

通过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了!下面先罗列出string类的函数有哪一些,然后再罗列出函数的原型,最后到代码的实现 标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用.现将具体用法的一部分罗列如下,只起一个抛砖引玉的作用吧,好了,废话少说,直接进入正题吧!要想使用标准C++中string类,必须要包含#include <s

C++中string类及文件流类(ofstream,ifstream)的基本操作---按行读取文档

先说明一个问题:java构建对象只能使用new的方法,而C++则不然. 下面代码实现读取test.txt文件中的内容并显示,同时将某一个字符串输入到文件test1.txt中. 函数getline(ifstream& param1, string& param2);按行读取文档,若处于文件尾部,返回false. 函数object.c_str();将字符串转换成字符数组,返回指针. 其它函数的使用请参照程序. // test_max.cpp : 定义控制台应用程序的入口点. // #inclu