string中的杂散知识点

#include<iostream>
using namespace std;
#include"string"
#include"algorithm"
int main()
{
	string s1 = "who are you ?";
	string s2(" i am your father.");
	s1 += s2;
	cout <<"s1 is : " << s1  << endl;
	cout <<"s1[2] is : "<<  s1[2]<< endl; //出现异常不会抛出异常
	cout << "s2.at(2) is : " << s1.at(2) << endl; //出现异常会抛出异常

	cout << " the size of s2 is :" << s2.size() << endl;
	cout << " the length of s2 is :" << s2.length() << endl;//两者没区别,且长度中都没有算‘\0‘

	//查找和替换
	int iFind = s1.find( "o",0);
	while (iFind != string::npos)
	{
		cout << "o 的位置在 : " << iFind << endl;
		s1.replace(iFind, 1, "O");
		iFind += 1;
		iFind = s1.find("o", iFind);
	}
	cout << " 替换后的s1 :"<<s1<<endl;
	//删除
	string::iterator it = find(s1.begin(), s1.end(), ‘i‘);
	if (it != s1.end())
	{
		s1.erase(it);
	}
	cout << "删除后的s1 是: " << s1 << endl;
	//插入
	s1.insert(s1.begin(),‘A‘);
	cout << "插入A 后的s1 :" << s1 << endl;

	transform(s1.begin(), s1.end(), s1.begin(),  toupper);
	cout << " s1 大写之后 : " << s1 << endl;

	transform(s1.begin(), s1.end(), s1.begin(), tolower);
	cout << " s1 小写之后 : " << s1 << endl;
	//拷贝
	char buf1[11] = { 0 };
	s1.copy(buf1, 3, 0);
	cout << " buf1 is :" << buf1 << endl;
	system("pause");
}

  

时间: 2024-11-05 12:25:19

string中的杂散知识点的相关文章

【转载】Java基础之String中equals,声明方式,等大总结

转载请注明出处:http://blog.csdn.net/dmk877/article/details/49420141 无论你是一个编程新手还是老手,提到String你肯定感觉特别熟悉,因为String类我们在学习java基础的时候就已经学过,但是String类型有我们想象的那么简单吗?其实不然,String类型的知识点还是比较多的.今天就和大家来一起讨论一下,关于String的一些容易让人疑惑的地方,废话不多说进入正题...如有谬误请批评指正,如果有疑问请留言.我会在第一时间修改或回答 通过

string中常用的函数

发现在string在处理这符串是很好用,就找了一篇文章放在这里了.. 用 string来代替char * 数组,使用sort排序算法来排序,用unique 函数来去重1.Define           string s1 = "hello";           string s2 = "world";           string s3 = s1 + "," + s2 +"!\n";2.append          

C++读一行到string中与vc的debug assertion failed!问题

将输入的一行读到string中不需要像用数组那样,考虑给多少大小的空间,这可以使得做acm题更加方便. c++98有两个函数可以读一行到string中,如下: istream& getline (istream& is, string& str, char delim); istream& getline (istream& is, string& str); 例子: #include <iostream> #include <string

C++string中有关字符串内容修改和替换的函数浅析

1.assign() 原型: //string (1) basic_string& assign (const basic_string& str); //substring (2) basic_string& assign (const basic_string& str, size_type subpos, size_type sublen); //c-string (3) basic_string& assign (const charT* s); //buf

Java编程中容易疏忽的知识点

(1)Frame与窗口事件 1.Window.Frame.Dialog和FileDialog都属于有边框容器,他们的父类为Window,但是Window本身属于无边框的,算是有边框容器的一个例外. 2.Frame可以作为一个Application的最外层容器,也可以被其他容器创建并弹出成为独立的容器,但是无论哪种情况,Frame都作为最顶层容器的存在,不能被其他容器所包含. 3.新创建的Frame是不可见的.需要使用setVisible(true)方法使其可见. 4.每个Frame在其右上角都有

C++ string中的几个小陷阱,你掉进过吗?

C++开发的项目难免会用到STL的string,使用管理都比char数组(指针)方便的多,但在得心应手的使用过程中也要警惕几个小陷阱,避免我们项目出bug却迟迟找不到原因. 1.  结构体中的string赋值问题直接通过一个例子说明,下面的例子会输出什么: #include <iostream> #include <string> #include <stdlib.h> using namespace std; struct flowRecord { string ap

Java的String中的subString()方法

public String substring(int beginIndex, int endIndex) 第一个int为开始的索引,对应String数字中的开始位置, 第二个是截止的索引位置,对应String中的结束位置 1.取得的字符串长度为:endIndex - beginIndex; 2.从beginIndex开始取,到endIndex结束,从0开始数,其中不包括endIndex位置的字符 如: "hamburger".substring(4, 8) returns "

删除String中的空格

三种删除String中空格的方法.可用根据需要自由进行选择使用. 1.C风格 #include "stdafx.h" void RemoveStringSpaces(char* pStr); int _tmain(int argc, _TCHAR* argv[]) { return 0; } void RemoveStringSpaces(char* pStr) { int i = 0; // 'Copy to' index to string int j = 0; // 'Copy

string 中的 length函数 和size函数 返回值问题

string 中的 length函数 和 size函数 的返回值  (  还有 char [ ] 中 测量字符串的  strlen 函数 ) 应该是 unsigned int 类型的 不可以 和 -1 比较. 应尽量避免 unsigned int 类型 和 int类型 数据 的比较 .当unsigned int 类型 和 int类型 数据 比较 时 ,会 把int 类型 转换 为 unsigned int类型 .如果 int是负数 ,转换 为 unsigned int 会是 一个 很大 的正整数