C++ string类insert函数的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ string类insert函数的用法相关的知识,希望对你有一定的参考价值。

请问一下这个函数的具体用法
void set_about(string about)

for(int i = 0;i < (int)(about.length() / 2) / 30 && i < 25;i++)
for(int j = 0;j <= 29;j++)

if(about.substr(i * 30 * 2 + j * 2,2) == LINEFEED)
about.insert(i * 30 * 2 + j * 2,BLANK,0,2);
set_pixel(i + 8,j + 8,about.substr(i * 30 * 2 + j * 2,2));

for(int i = 0;i < (about.length() / 2) % 30;i++)
set_pixel((int)(about.length() / 2) / 30 + 8,i + 8,about.substr((int)((about.length() / 2) / 30) * 30 * 2 + i * 2,2));

以上是我所写的一个函数,其中set_pixel()是用于打点的,在此之前此函数并未出现故障 而LINEFEED 和 BLANK是字符串常量,
程序运行到这里的时候出现故障 但是并非是调试出错 而是运行之后程序不能继续运行有点像“无响应”

string的成员函数insert有以下多种重载:

string &insert(int p0, const char *s);——在p0位置插入字符串s

string &insert(int p0, const char *s, int n);——在p0位置插入字符串s的前n个字符

string &insert(int p0,const string &s);——在p0位置插入字符串s

string &insert(int p0,const string &s, int pos, int n);——在p0位置插入字符串s从pos开始的连续n个字符

string &insert(int p0, int n, char c);//在p0处插入n个字符c

iterator insert(iterator it, char c);//在it处插入字符c,返回插入后迭代器的位置

void insert(iterator it, const_iterator first, const_iteratorlast);//在it处插入从first开始至last-1的所有字符

void insert(iterator it, int n, char c);//在it处插入n个字符c

以下是第二行性能的举例代码:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include <string>
#include <iostream>
using namespace std;//
int main(void)
    string a="1234567890",b="abcdefghijklmn";
    a.insert(3,b,5,4);
    cout << a << endl;
    return 0;

输出是123fghi4567890.

参考技术A string-》c风格字符串要转换的。成员函数c_str();本回答被提问者采纳 参考技术B set_pixel(i + 8,j + 8,about.substr(i * 30 * 2 + j * 2,2))参数匹配吗??看看其用法,还有参数类型。追问

这个函数是匹配了的,是insert函数的那个位置出错

(转载)C++ string中find() ,rfind() 等函数 用法总结及示例

string中 find()的应用  (rfind() 类似,只是从反向查找)
原型如下:
(1)size_t find (const string& str, size_t pos = 0) const;  //查找对象--string类对象
(2)size_t find (const char* s, size_t pos = 0) const; //查找对象--字符串
(3)size_t find (const char* s, size_t pos, size_t n) const;  //查找对象--字符串的前n个字符
(4)size_t find (char c, size_t pos = 0) const;  //查找对象--字符
 
结果:找到 -- 返回 第一个字符的索引
     没找到--返回   string::npos
 
其他还有  find_first_of(), find_last_of(), find_first_not_of(), find_last_not_of()
作用是查找   字符串中 任一个字符 满足的查找条件
string snake1("cobra");
int where = snake1.find_first_of("hark");
返回3  因为 "hark"中 各一个字符 在 snake1--cobra 中第一次出现的是  字符‘r‘(3为 cobra 中‘r‘的索引)
同理:
int where = snake1.find_last_of("hark");
返回4  因为 "hark"中 各一个字符 在 snake1--cobra 中最后一次出现的是  字符‘a‘(3为 cobra 中‘r‘的索引)

以上是关于C++ string类insert函数的用法的主要内容,如果未能解决你的问题,请参考以下文章

C++学习38 string字符串的增删改查

c++中c_str()用法,越详细越好。

(转载)C++ string中find() ,rfind() 等函数 用法总结及示例

C++ STLstring的用法

c++ string类的常用方法

标准C++中的string类的用法总结