http://www.programfan.com/blog/article.asp?id=16880 (关于string的函数)
http://hi.baidu.com/jiangyangw3r/item/a510cc24771bb34646996298 (关于char*的操作)
p1、c++文件 读取 直到 某 特定字符:
int pos=s.find_first_of("p");
s.erase(pos);
p2、how to convert string to const char*?: http://blog.sina.com.cn/s/blog_5436b2f40100pjzz.html
1. string转const char*
string s = "abc";
const char* c_s = s.c_str();
2. const char*转string
直接赋值即可
const char* c_s = "abc";
string s(c_s);
3. string转char*
string s = "abc";
char* c;
const int len = s.length();
c = new char[len+1];
strcpy(c,s.c_str());
4. char*转string
char* c = "abc";
string s(c);
5. const char*转char*
const char* cpc = "abc";
char* pc = new char[100];//足够长
strcpy(pc,cpc);
6. char*转const char*
直接赋值即可
char* pc = "abc";
const char* cpc = pc;
p3、如何把string str=""; 与 char c='c'; 连接成一个新字符串:
p4、截取字符串的最后3个字符:
1.string
2.char*
p5、:
char*l1="";// l1 是一个指针,指向的字符串在常量区,不可以改;
char c='c';
char *cc=&c;
strcat(l1,cc);//访问内存异常
http://blog.csdn.net/habit2/article/details/4331804 (char* 与char[] 的区别)
char* p="hello";//p是指向常量字符串的指针。初始化后,p的内容不可变,但指针可变,即p="dffg"(正确,指向“dffg”的指针);但*(p+2)="w"(错误,内容不可改)。相当于 const char *p="hello";
char pp[]="world";//pp是一个指针常量,数组本身分配了静态内存,即地址不可变(本身不可变),但是内置上的内容可以变。相当于char const *pp="world"(???这句不明白)
p6、string user;
ifstream infile("***");
infile>>user;
string sqls="select count(distinct(url)) from question_list inner join answer_list on question_url=url where asker=""+user+"" and answer_name=""+verl[j].first+""";//这句话gbd出错:0xb7c5d1ba in std::string::append(std::string const&) ()
from /usr/lib/i386-linux-gnu/libstdc++.so.6
p7、string ,int作为参数的问题。
pair<string,int> fun()
{
pair<string,int> pp;
string s="a";
return pp(s,1);
}
这段程序会报错:no match for call to ‘(std::pair<std::basic_string<char>, int>) (std::string&, int)’
: no match for call to ‘(std::pair<std::basic_string<char>, int>) (std::basic_string<char>&, int&)’
std::string::assign(std::string const&) () 发现 能把c++的字符串相关操作吃透是件好伟大的事,路慢慢其修远兮。。