b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

c strcpy用法_c strchr函数用法_indexofstring c 实现(2)

电脑杂谈  发布时间:2017-02-28 02:04:31  来源:网络整理

else

cout << "your name should be after of winter"<<endl;

strinfo += " , Welcome to China!";

cout << strinfo<<endl;

cout <<"Your name is :"<<endl;

string strtmp = "How are you? " + strinfo;

for(int i = 0 ; i < strtmp.size(); i ++)

cout<<strtmp[i];

return 0;

}

下面是程序的输出

-bash-2.05b$ make tt

c++ -O -pipe -march=pentiumpro tt.cpp -o tt

-bash-2.05b$ ./tt

Please input your name:Hero

you are not wende!

Hero , Welcome to China!

How are you? Hero , Welcome to China!

有了这些操作符,在STL中仿函数都可以直接使用string作为参数,例如 less, great, equal_to 等,因此在把string作为参数传递的时候,它的使用和int 或者float等已经没有什么区别了。例如,你可以使用:

map<string, int> mymap;

//以上默认使用了 less<string>

有了 operator + 以后,你可以直接连加,例如:

string strinfo="Winter";

string strlast="Hello " + strinfo + "!";

//你还可以这样:

string strtest="Hello " + strinfo + " Welcome" + " to China" + " !";

看见其中的特点了吗?只要你的等式里面有一个 string 对象,你就可以一直连续"+",但有一点需要保证的是,在开始的两项中,必须有一项是 string 对象。其原理很简单:

系统遇到"+"号,发现有一项是string 对象。

系统把另一项转化为一个临时 string 对象。

执行 operator + 操作,返回新的临时string 对象。

如果又发现"+"号,继续第一步操作。

由于这个等式是由左到右开始检测执行,如果开始两项都是const char* ,程序自己并没有定义两个const char* 的加法,编译的时候肯定就有问题了。

有了操作符以后,assign(), append(), compare(), at()等函数,除非有一些特殊的需求时,一般是用不上。当然at()函数还有一个功能,那就是检查下标是否合法,如果是使用:

string str="winter";

//下面一行有可能会引起程序中断错误

str[100]='!';

//下面会抛出异常:throws: out_of_range

cout<<str.at(100)<<endl;

了解了吗?如果你希望效率高,还是使用[]来访问,如果你希望稳定性好,最好使用at()来访问。

1.2 眼花缭乱的string find 函数

由于查找是使用最为频繁的功能之一,string 提供了非常丰富的查找函数。其列表如下:

函数名 描述 find 查找 rfind 反向查找 find_first_of 查找包含子串中的任何字符,返回第一个位置 find_first_not_of 查找不包含子串中的任何字符,返回第一个位置 find_last_of 查找包含子串中的任何字符,返回最后一个位置 find_last_not_of 查找不包含子串中的任何字符,返回最后一个位置以上函数都是被重载了4次,以下是以find_first_of 函数为例说明他们的参数,其他函数和其参数一样,也就是说总共有24个函数:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-34906-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...