第一篇:初始化string对象的方式总结
标准c++中string类函数介绍
注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。
好了,进入正题………
首先,为了在我们的程序中使用string类型,我们必须包含头文件
如下:
#include
c)string s(str,stridx)//将字符串str内“始于位臵stridx”的部分当作字符串的初值
d)string s(str,stridx,strlen)//将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
e)string s(cstr)//将C字符串作为s的初值
f)string s(chars,chars_len)//将C字符串前chars_len个字符作为字符串s的初值。
g)string s(num,c)//生成一个字符串,包含num个c字符
h)string s(beg,end)//以区间beg;end(不包含end)内的字符作为字符串s的初值
i)s.~string()//销毁所有字符,释放内存 都很简单,我就不解释了。
2.字符串操作函数
这里是C++字符串的重点,我先把各种操作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。a)=,assign()//赋以新值
b)swap()//交换两个字符串的内容
c)+=,append(),push_back()//在尾部添加字符 d)insert()//插入字符 e)erase()//删除字符 f)clear()//删除全部字符 g)replace()//替换字符 h)+ //串联字符串
i)==,!=,<,<=,>,>=,compare()//比较字符串 j)size(),length()//返回字符数量 k)max_size()//返回字符的可能最大个数 l)empty()//判断字符串是否为空
m)capacity()//返回重新分配之前的字符容量 n)reserve()//保留一定量内存以容纳一定数量的字符 o)[ ], at()//存取单一字符
p)>>,getline()//从stream读取某值 q)<< //将谋值写入stream r)copy()//将某值赋值为一个C_string s)c_str()//将内容以C_string返回 t)data()//将内容以字符数组形式返回 u)substr()//返回某个子字符串 v)查找函数
w)begin()end()//提供类似STL的迭代器支持 x)rbegin()rend()//逆向迭代器 y)get_allocator()//返回配臵器
下面详细介绍: 2.1 C++字符串和C字符串的转换
C ++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加'/0'。c_str()返回一个以„/0'结尾的字符数组,而copy()则把字符串的内容复制或写入既有的c_string或字符数组内。C++字符串并不以'/0'结尾。我的建议是在程序中能使用C++字符串就使用,除非万不得已不选用c_string。由于只是简单介绍,详细介绍掠过,谁想进一步了解使用中的注意事项可以给我留言(到我的收件箱)。我详细解释。
2.2 大小和容量函数
一个C++字符串存在三种大小:a)现有的字符数,函数是size()和length(),他们等效。Empty()用来检查字符串是否为空。b)max_size()这个大小是指当前C++字符串最多能包含的字符数,很可能和机器本身的限制或者字符串所在位臵连续内存的大小有关系。我们一般情况下不用关心他,应该大小足够我们用的。但是不够用的话,会抛出length_error异常c)capacity()重新分配内存之前 string所能包含的最大字符数。这里另一个需要指出的是reserve()函数,这个函数为string重新分配内存。重新分配的大小由其参数决定,默认参数为0,这时候会对string进行非强制性缩减。
还有必要再重复一下C++字符串和C字符串转换的问题,许多人会遇到这样的问题,自己做的程序要调用别人的函数、类什么的(比如数据库连接函数Connect(char*,char*)),但别人的函数参数用的是char*形式的,而我们知道,c_str()、data()返回的字符数组由该字符串拥有,所以是一种const char*,要想作为上面提及的函数的参数,还必须拷贝到一个char*,而我们的原则是能不使用C字符串就不使用。那么,这时候我们的处理方式是:如果此函数对参数(也就是char*)的内容不修改的话,我们可以这样Connect((char*)UserID.c_str(),(char*)PassWD.c_str()),但是这时候是存在危险的,因为这样转换后的字符串其实是可以修改的(有兴趣地可以自己试一试),所以我强调除非函数调用的时候不对参数进行修改,否则必须拷贝到一个char*上去。当然,更稳妥的办法是无论什么情况都拷贝到一个char*上去。同时我们也祈祷现在仍然使用C字符串进行编程的高手们(说他们是高手一点儿也不为过,也许在我们还穿开裆裤的时候他们就开始编程了,哈哈…)写的函数都比较规范,那样我们就不必进行强制转换了。
2.3元素存取
我们可以使用下标操作符[]和函数at()对元素包含的字符进行访问。但是应该注意的是操作符[]并不检查索引是否有效(有效索引0~str.length()),如果索引失效,会引起未定义的行为。而at()会检查,如果使用 at()的时候索引无效,会抛出out_of_range异常。
有一个例外不得不说,const string a;的操作符[]对索引值是a.length()仍然有效,其返回值是'/0'。其他的各种情况,a.length()索引都是无效的。举例如下:
const string Cstr(“const string”);string Str(“string”);Str[3];//ok Str.at(3);//ok Str[100];//未定义的行为
Str.at(100);//throw out_of_range Str[Str.length()] //未定义行为 Cstr[Cstr.length()] //返回 „/0' Str.at(Str.length());//throw out_of_range Cstr.at(Cstr.length())////throw out_of_range 我不赞成类似于下面的引用或指针赋值: char& r=s[2];char* p= &s[3];因为一旦发生重新分配,r,p立即失效。避免的方法就是不使用。
2.4比较函数
C ++字符串支持常见的比较操作符(>,>=,<,<=,==,!=),甚至支持string与C-string的比较(如 str<”hello”)。在使用>,>=,<,<=这些操作符的时候是根据“当前字符特性”将字符按字典顺序进行逐一得比较。字典排序靠前的字符小,比较的顺序是从前向后比较,遇到不相等的字符就按这个位臵上的两个字符的比较结果确定两个字符串的大小。同时,string(“aaaa”) 另一个功能强大的比较函数是成员函数compare()。他支持多参数处理,支持用索引值和长度定位子串来进行比较。他返回一个整数来表示比较结果,返回值意义如下:0-相等〉0-大于<0-小于。举例如下: string s(“abcd”);s.compare(“abcd”);//返回0 s.compare(“dcba”);//返回一个小于0的值 s.compare(“ab”);//返回大于0的值 s.compare(s);//相等 s.compare(0,2,s,2,2);//用”ab”和”cd”进行比较小于零 s.compare(1,2,”bcx”,2);//用”bc”和”bc”比较。 怎么样?功能够全的吧!什么?还不能满足你的胃口?好吧,那等着,后面有更个性化的比较算法。先给个提示,使用的是STL的比较算法。什么?对STL一窍不通?靠,你重修吧! 2.5 更改内容 这在字符串的操作中占了很大一部分。 首先讲赋值,第一个赋值方法当然是使用操作符=,新值可以是string(如:s=ns)、c_string(如:s=”gaint”)甚至单一字符(如:s='j')。还可以使用成员函数assign(),这个成员函数可以使你更灵活的对字符串赋值。还是举例说明吧: s.assign(str);//不说 s.assign(str,1,3);//如果str是”iamangel” 就是把”ama”赋给字符串 s.assign(str,2,string::npos);//把字符串str从索引值2开始到结尾赋给s s.assign(“gaint”);//不说 s.assign(“nico”,5);//把'n' „I' „c' „o' „/0'赋给字符串 s.assign(5,'x');//把五个x赋给字符串 把字符串清空的方法有三个:s=””;s.clear();s.erase();(我越来越觉得举例比说话让别人容易懂!)。 string提供了很多函数用于插入(insert)、删除(erase)、替换(replace)、增加字符。 先说增加字符(这里说的增加是在尾巴上),函数有 +=、append()、push_back()。 举例如下: s+=str;//加个字符串 s+=”my name is jiayp”;//加个C字符串 s+='a';//加个字符 s.append(str);s.append(str,1,3);//不解释了同前面的函数参数assign的解释 s.append(str,2,string::npos)//不解释了 s.append(“my name is jiayp”);s.append(“nico”,5);s.append(5,'x');s.push_back(„a');//这个函数只能增加单个字符对STL熟悉的理解起来很简单 也许你需要在string中间的某个位臵插入字符串,这时候你可以用insert()函数,这个函数需要你指定一个安插位臵的索引,被插入的字符串将放在这个索引的后面。 s.insert(0,”my name”);s.insert(1,str);这种形式的insert()函数不支持传入单个字符,这时的单个字符必须写成字符串形式(让人恶心)。既然你觉得恶心,那就不得不继续读下面一段话:为了插入单个字符,insert()函数提供了两个对插入单个字符操作的重载函数:insert(size_type index,size_type num,chart c)和insert(iterator pos,size_type num,chart c)。其中size_type是无符号整数,iterator是char*,所以,你这么调用insert函数是不行的:insert(0,1, 'j');这时候第一个参数将转换成哪一个呢?所以你必须这么写:insert((string::size_type)0,1,'j')!第二种形式指出了使用迭代器安插字符的形式,在后面会提及。顺便提一下,string有很多操作是使用STL的迭代器的,他也尽量做得和STL靠近。 删除函数erase()的形式也有好几种(真烦!),替换函数replace()也有好几个。 举例吧: string s=”il8n”; s.replace(1,2,”nternationalizatio”);//从索引1开始的2个替换成后面的C_string s.erase(13);//从索引13开始往后全删除 s.erase(7,5);//从索引7开始往后删5个 2.6提取子串和字符串连接 题取子串的函数是:substr(),形式如下: s.substr();//返回s的全部内容 s.substr(11);//从索引11往后的子串 s.substr(5,6);//从索引5开始6个字符 把两个字符串结合起来的函数是+。(谁不明白请致电120) 2.7输入输出操作 1.>>从输入流读取一个string。2.<<把一个string写入输出流。 另一个函数就是getline(),他从输入流读取一行内容,直到遇到分行符或到了文件尾。 2.8搜索与查找 查找函数很多,功能也很强大,包括了: find()rfind()find_first_of()find_last_of()find_first_not_of()find_last_not_of()这些函数返回符合搜索条件的字符区间内的第一个字符的索引,没找到目标就返回npos。所有的函数的参数说明如下: 第一个参数是被搜寻的对象。第二个参数(可有可无)指出string内的搜寻起点索引,第三个参数(可有可无)指出搜寻的字符个数。比较简单,不多说不理解的可以向我提出,我再仔细的解答。当然,更加强大的STL搜寻在后面会有提及。 最后再说说npos的含义,string::npos的类型是string::size_type,所以,一旦需要把一个索引与npos相比,这个索引值必须是string::size)type类型的,更多的情况下,我们可以直接把函数和npos进行比较(如:if(s.find(“jia”)== string::npos))。 string类的构造函数: string(const char *s);//用c字符串s初始化 string(int n,char c);//用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2=“hello”;都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作: const char &operator[](int n)const;const char &at(int n)const;char &operator[](int n);char &at(int n);operator[]和at()均返回当前字符串中第n个字符的位臵,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。const char *data()const;//返回一个非null终止的c字符数组 const char *c_str()const;//返回一个以null终止的c字符串 int copy(char *s, int n, int pos = 0)const;//把当前串中以pos开始的n个字符拷贝到以s为起始位臵的字符数组中,返回实际拷贝的数目 string的特性描述: int capacity()const;//返回当前容量(即string中不必增加内存即可存放的元素个数) int max_size()const;//返回string对象中可存放的最大字符串的长度 int size()const;//返回当前字符串的大小 int length()const;//返回当前字符串的长度 bool empty()const;//当前字符串是否为空 void resize(int len,char c);//把字符串当前大小臵为len,并用字符c填充不足的部分 string类的输入输出操作: string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。 函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'n'分开。 string的赋值: string &operator=(const string &s);//把字符串s赋给当前字符串 string &assign(const char *s);//用c类型字符串s赋值 string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值 string &assign(const string &s);//把字符串s赋给当前字符串 string &assign(int n,char c);//用n个字符c赋值给当前字符串 string &assign(const string &s,int start,int n);//把字符串s中从start开始的n个字符赋给当前字符串 string &assign(const_iterator first,const_itertor last);//把first和last迭代器之间的部分赋给字符串 string的连接: string &operator+=(const string &s);//把字符串s连接到当前字符串的结尾 string &append(const char *s);//把c类型字符串s连接到当前字符串结尾 string &append(const char *s,int n);//把c类型字符串s的前n个字符连接到当前字符串结尾 string &append(const string &s);//同operator+=()string &append(const string &s,int pos,int n);//把字符串s中从pos开始的n个字符连接到当前字符串的结尾 string &append(int n,char c);//在当前字符串结尾添加n个字符c string &append(const_iterator first,const_iterator last);//把迭代器first和last之间的部分连接到当前字符串的结尾 string的比较: bool operator==(const string &s1,const string &s2)const;//比较两个字符串是否相等 运算符“>”,“<”,“>=”,“<=”,“!=”均被重载用于字符串的比较; int compare(const string &s)const;//比较当前字符串和s的大小 int compare(int pos, int n,const string &s)const;//比较当前字符串从pos开始的n个字符组成的字符串与s的大小 int compare(int pos, int n,const string &s,int pos2,int n2)const;//比较当前字符串从pos开始的n个字符组成的字符串与s中pos2开始的n2个字符组成的字符串的大小 int compare(const char *s)const;int compare(int pos, int n,const char *s)const;int compare(int pos, int n,const char *s, int pos2)const;compare函数在>时返回1,<时返回-1,==时返回0 string的子串: string substr(int pos = 0,int n = npos)const;//返回pos开始的n个字符组成的字符串 string的交换: void swap(string &s2);//交换当前字符串与s2的值 string类的查找函数: int find(char c, int pos = 0)const;//从pos开始查找字符c在当前字符串的位臵 int find(const char *s, int pos = 0)const;//从pos开始查找字符串s在当前串中的位臵 int find(const char *s, int pos, int n)const;//从pos开始查找字符串s中前n个字符在当前串中的位臵 int find(const string &s, int pos = 0)const;//从pos开始查找字符串s在当前串中的位臵 //查找成功时返回所在位臵,失败返回string::npos的值 int rfind(char c, int pos = npos)const;//从pos开始从后向前查找字符c在当前串中的位臵 int rfind(const char *s, int pos = npos)const;int rfind(const char *s, int pos, int n = npos)const;int rfind(const string &s,int pos = npos)const;//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位臵,成功返回所在位臵,失败时返回string::npos的值 int find_first_of(char c, int pos = 0)const;//从pos开始查找字符c第一次出现的位臵 int find_first_of(const char *s, int pos = 0)const;int find_first_of(const char *s, int pos, int n)const;int find_first_of(const string &s,int pos = 0)const;//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位臵。查找失败返回string::npos int find_first_not_of(char c, int pos = 0)const;int find_first_not_of(const char *s, int pos = 0)const;int find_first_not_of(const char *s, int pos,int n)const;int find_first_not_of(const string &s,int pos = 0)const;//从当前串中查找第一个不在串s中的字符出现的位臵,失败返回string::npos int find_last_of(char c, int pos = npos)const;int find_last_of(const char *s, int pos = npos)const;int find_last_of(const char *s, int pos, int n = npos)const;int find_last_of(const string &s,int pos = npos)const;int find_last_not_of(char c, int pos = npos)const;int find_last_not_of(const char *s, int pos = npos)const;int find_last_not_of(const char *s, int pos, int n)const;int find_last_not_of(const string &s,int pos = npos)const;//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找 string类的替换函数: string &replace(int p0, int n0,const char *s);//删除从p0开始的n0个字符,然后在p0处插入串s string &replace(int p0, int n0,const char *s, int n);//删除p0开始的n0个字符,然后在p0处插入字符串s的前n个字符 string &replace(int p0, int n0,const string &s);//删除从p0开始的n0个字符,然后在p0处插入串s string &replace(int p0, int n0,const string &s, int pos, int n);//删除p0开始的n0个字符,然后在p0处插入串s中从pos开始的n个字符 string &replace(int p0, int n0,int n, char c);//删除p0开始的n0个字符,然后在p0处插入n个字符c string &replace(iterator first0, iterator last0,const char *s);//把[first0,last0)之间的部分替换为字符串s string &replace(iterator first0, iterator last0,const char *s, int n);//把[first0,last0)之间的部分替换为s的前n个字符 string &replace(iterator first0, iterator last0,const string &s);//把[first0,last0)之间的部分替换为串s string &replace(iterator first0, iterator last0,int n, char c);//把[first0,last0)之间的部分替换为n个字符c string &replace(iterator first0, iterator last0,const_iterator first, const_iterator last);//把[first0,last0)之间的部分替换成[first,last)之间的字符串 string类的插入函数: string &insert(int p0, const char *s);string &insert(int p0, const char *s, int n);string &insert(int p0,const string &s);string &insert(int p0,const string &s, int pos, int n);//前4个函数在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_iterator last);//在it处插入[first,last)之间的字符 void insert(iterator it, int n, char c);//在it处插入n个字符c string类的删除函数 iterator erase(iterator first, iterator last);//删除[first,last)之间的所有字符,返回删除后迭代器的位臵 iterator erase(iterator it);//删除it指向的字符,返回删除后迭代器的位臵 string &erase(int pos = 0, int n = npos);//删除pos开始的n个字符,返回修改后的字符串 string类的迭代器处理: string类提供了向前和向后遍历的迭代器iterator,迭代器提供了访问各个字符的语法,类似于指针操作,迭代器不检查范围。 用string::iterator或string::const_iterator声明迭代器变量,const_iterator不允许改变迭代的内容。常用迭代器函数有: const_iterator begin()const;iterator begin();//返回string的起始位臵 const_iterator end()const;iterator end();//返回string的最后一个字符后面的位臵 const_iterator rbegin()const;iterator rbegin();//返回string的最后一个字符的位臵 const_iterator rend()const;iterator rend();//返回string第一个字符位臵的前面 rbegin和rend用于从后向前的迭代访问,通过设臵迭代器string::reverse_iterator,string::const_reverse_iterator实现 字符串流处理: 通过定义ostringstream和istringstream变量实现, string input(“hello,this is a test”);istringstream is(input);string s1,s2,s3,s4;is>>s1>>s2>>s3>>s4;//s1=“hello,this”,s2=“is”,s3=“a”,s4=“test” ostringstream os;os< 营销方式: 1、合作式营销: ①和校学生会的部分部门建立长期的合作关系,建立一个英语交流平台,定期搞些成系统的系列活动。 ②和校团委、社团联合会相应部门举办大型冠名或提供学术支持 以上都是可以不花钱的双赢计划,如果可以进行的话再根据学校的活动做进一步的策划。 以上都是可以不花钱的双赢计划,如果可以进行的话再根据学校的活动做进一步的策划。还可以有些可以小小投入的。 2、小投入营销: ①新东方大型励志讲座,毋庸置疑必定很有吸引力,目的就是让学生学到东西的同时更加认识新东方,潜意识让新东方在同学心里根深蒂固 ②和校学生会的部分部门建立长期的合作关系,建立一个英语交流平台,定期搞些成系统的系列活动。 ③和校团委、社团联合会相应部门举办大型冠名或提供学术支持 以上都是可以不花钱的双赢计划,如果可以进行的话再根据学校的活动做进一步的策划。还可以有些可以小小投入的①最简单的单页、海报的张贴。 ②和学校的企业合作 如:力为公司 为其连锁超市提供免费购物袋。 ③在学校每年开学接新生、文化街等活动中提供些免费水合凉伞,顺便宣传现场报名优惠政策。 ④学校校园网广告,所有人每次登陆校园网客户端,都会自动弹出首页,这个首页的新闻是很好的传播途径。 ⑤也可以在一些纪念日搞一个吉林高校联合的英语知识竞赛。招生对象: 1、大一新生 针对大一入学对英语学习及四六级考试不清楚开展技巧讲座和经验交流会,宣传四六级课程。根据表格,本科部分经管人数最多,食品、动医、动科、中药、信息几个院人数相差不多,出信息外均是农校的重点专业,建议市场大部分从这下手铺垫。 2、毕业生 毕业生也不是没有市场,很多临毕业,都很要求自己的英语,有四六级一直未通过的,考研的,特殊就业需要的。 3、英语专业学生 他们对专 四、专八有要求,但在我校人数很少。建议不设课程点,在市里新东方学校设一个全吉林高校的课程授课点,但可先跟英语院做些免费的讲座,毕竟以后合作的机会还很多。 4、大二大三的学生 有一部分人四、六级屡考不过的,可作为重点宣传对象,根据表格 这部分经管院人数最多,可作为市场重点 铺垫的对象,当然最好还是在统计下各院四、六级过级率,在进一步讨论。 5、专科生及专升本学生 专科生09加10届大概有近2000人,也是一个不可忽视的群体。专科生的英语底子薄,他们毕业的要求是过公共英语三级,我也考过三级,自认为三级的难易程度与高考英语的水平相当,但不过的人粗略估计也在总人数的40%。专升本的学生就是专科毕业,以第一学历在毕业当届参加专升本考试而升入全日制本科的学生,对他们三级肯定都过了,他们粗略有50%的人没有过,而他们毕业的要求跟正常本科生一样。这个群体的人数200多人,人不多,同时年龄相对较大,不好发展市场。 服务对象评价总结 为了进一步规范老年公寓的管理,提高工作人员的服务水平,维护、保障好老人们的权益,南马镇组织对老年公寓工作人员进行了满意度测评。该镇分管民政的工作人员、老年公寓工作人员和在住老人参加会议。 会上,老年公寓的工作人员首先进行了半年工作总结,听取老人们的意见和建议。之后进行的满意度测评坚持公正、公平,从出勤率、工作态度、服务效果等方面对工作人员进行评级,进一步了解了老人们的想法。统计显示,老人们对老年公寓工作人员的服务水平较认可,满意度达到90%以上。 会后,该镇分管领导指出,此次会议主要是对工作人员进行半年测评,用明确的指标来衡量他们的日常工作,促使他们进一步改进自己的工作态度,规范自己的工作行为,提高自己的工作能力。希望全体工作人员在以后的工作中做到以下几点: 一、转变思想,提升能力。老年公寓的服务对象是老年人,需要更多的细心和关心,要求全体工作人员必须切实转变思想,端正工作态度。在工作中不能得过且过,要进一步提升能力,提高为老人服务的水平,让老人们可以安享晚年。 二、规范行为,团结一致。作为一名老年公寓工作人员,要时时刻刻摆正自己的位置,规范行为,提高个人素养。另外,老年公寓是一个大集体,大家要团结一致,营造和谐的工作氛围,共同努力为老人们建设安静祥和的养老环境。 探索小额贷款业务的服务对象和方式 小额信贷作为一种金融制度的创新,自出现以来一直致力于为低收入阶层提供金融服务,通过提供金融服务来提高低收入群体的收入,增加就业机会。发展中国家经济发展的历史证明小额信贷是缓解贫困、促进就业的有效方式。中国小额信贷的历史只有十几年时间,但是发展迅速,在反贫困和发展农村金融等方面取得了令人瞩目的成就,实现了重大的经济和社会效益,但是我国小额信贷还不尽完善,在实施过程中,还存在一些问题。虽然小额贷款公司目的不完全是扶贫,但是也包括一些服务‘三农’的内容,小额信贷公司的客户也包括一些中低收入、贫困人口的客户,我们希望服务一些低端客户、贫困人口的时候,(小额贷款公司)能够发挥作用。 从国际流行观点定义,小额信贷指向低收入群体和微型企业提供的额度较小的持续信贷服务,其基本特征是额度较小、无担保、无抵押、服务于贫困人口。小额信贷可由正规金融机构及专门的小额信贷机构或组织提供。小额信贷组织按照业务经营的特点,分两类:商业性和福利性,也称制度主义和福利主义。前者更强调小额信贷管理和目标设计中的机构可持续性,以印尼的人民银行为代表;后者则更注重项目对改善贫困人口经济和社会福利的作用,以孟加拉乡村银行为代表。 有观点认为中小企业中有一部分本来就是在市场淘汰之列,但因为大规模的企业倒闭有可能引发大量失业进而引发其他社会问题,帮扶企业就成为了一个政治上的决策。先不论这一目标在政治市场上的权衡,不妨集中讨论一下小额贷款的实质。尤努斯在《穷人的银行家》中详细阐述了所谓真正的‚小额贷款‛的含义,其服务目标是那些真正的穷人,当然也包括一些由穷人构成的联合经营小组,这些小组恐怕还称不上企业。也就是说,小额贷款服务对象并不是或者说不仅仅是企业,更广阔的对象是穷人。 但按照浙江省的相关规定:小额贷款公司主发起人要从管理规范、信用优良、实力雄厚的当地民营骨干企业中选择,要求净资产不低于5000万元(欠发达县域不低于2000万元)、资产负债率不高于70%、连续三年赢利且利润总额在1500万元(欠发达县域600万元)以上。这样的高门槛,无疑在事实上减少了民间资本参与经营的可能性。尽管有诸多限制,但多一个选择也不是什么坏事情。从稍微长一点的眼光来看,发展小额贷款的最终目的是在于搞活‚经济‛,搞活企业不过是一个手段。但是对于搞活经济而言,手段并不是只有一种,即便是村镇银行其作用也绝不应该仅仅局限在服务企业上,而是应该将个人也作为服务对象纳入考虑。即便是综合考虑中国文化与孟加拉的差异,将家庭以户为单位作为服务对象,是可以考虑的。如此一来,接下来要探讨的是如何控制企业的经营风险,但这是每一个进入小额贷款业的企业应该自己面对的问题。天下没有免费的午餐,也没有稳赚不赔的生意。只不过这种取舍并不需要政府去出手干预。对于政府而言,当下降低办小额贷款或村镇银行的门槛,或许是可为之事。 我国小额信贷组织主要分三类,即依靠国际组织援助的非政府形式的小额信贷机构或国内公益组织开办的小额信贷项目;正规金融机构开办的小额信贷业务;试点的商业性小额贷款公司。本文主要比较非政府形式的小额信贷机构和试点的小额贷款公司这两种组织形式。因此在发展小额信贷运作思路上,主要按照独立的小额信贷机构来设计,而不涉及正规商业银行开展小额信贷业务的机构组织设计问题。总体上,我国小额信贷现状存在制度主义与福利主义的矛盾,也就是覆盖率与可持续发展之间的矛盾。 (一)非政府形式的小额信贷机构覆盖面广,但是不能可持续运营 我国的非政府形式的小额信贷机构和国内公益组织的小额信贷项目基本上都属于福利主义的小额信贷,它们着重强调小额信贷为低收入的贫困人口服务,注重对这些人的收入和福利的改善,不少机构强调以贫困妇女为主要受益群体。在这方面,这些机构的小额信贷确实给贫困人口提供了信贷上的帮助,提高了他们的自立能力和生活水平。在我国,这类小额信贷机构约有300家,但是现在仍然存在的约有100家,能够经营的约有50家,能够可持续经营的不足10家。它们不但经营状况不理想,而且市场份额很小,约10亿元人民币。根据中国人民银行2003年对非政府形式的小额信贷机构普查数据显示,非政府形式的小额信贷机构整体上处于亏损状态,亏损比例超过50%。 (二)试点的商业化的小额贷款公司实现可持续发展,但是覆盖面难以顾及 小额贷款公司试点的初衷是解决农民特别是贫困地区农民融资难的问题,探索民间资金进入金融领域的新路子。其经营原则是为在农村的自然人和微小企业提供小额度的贷款服务。2005年12月27日,山西平遥晋源泰和日升隆小额贷款有限公司挂牌成立。在经营一年后,小额信贷公司遵循商业化的运作模式,平均贷款利率为20%左右,运转良好,公司基本都实现自负盈亏,实现了经营性可持续发展。但从05至06年成立的7家贷款公司的贷款方式和贷款对象可以看出,大多数公司的贷款方式依旧采取抵押和担保形式,贷款条件过于严格,单笔贷款额度过大,贷款对象倾向于回报较大的微小企业和经济能力比较好的农户,在可持续发展的背后,贫困者真正从中获益的较少。 小额信贷通过向贫困人口提供金融服务,成为农村扶贫的一种有效工具,但其在本质上是一种金融活动,若只注重社会及扶贫效益,必然导致自身难以生存和持续下去。反之,如果没有扶贫理念,社会责任感缺失,纯商业化的经营会带来机构的可持续发展,但是不可能真正为贫困人口提供金融服务。在这个意义上,完善的小额信贷机构应以为真正的穷人提供资金支持和追求机构的可持续发展为双重发展目标,兼顾覆盖面和可持续性。而且,扶贫和小额信贷的可持续性目标是不矛盾的,二者是相辅相成的。从国际小额信贷的实践来看,小额信贷可以兼顾消除贫困和持续地扩展金融服务的双重目标。如孟加拉乡村银行和印尼的拉基亚特银行尽管分别以扶贫和扩大商业银行持续性为其主要目标,但殊途同归,最后都实现了扶贫和持续发展的双重目标。 1.在良好的宏观政策环境下,提供法律和制度的保障 首先,要完善市场经济体制。我国从整体上尚未完全建立市场经济体制,贫困地区的市场机制的发育情况更为缓慢,因此,我国目前尚不存在小额贷款运作的市场载体,小额贷款的扶贫效果在市场机制发育不完善情况下,必定大打折扣。其次,政府应充分肯定小额信贷机构在扶贫和金融创新领域的作用,给予其合法经营权。对于那些有一定规模和实力、经营历史达到一定年限并具有优良业绩的机构,给与一定金融业务的合法经营权,并在中央银行的指导下,通过行业自律的方式加以监管。 2.具有社会责任感扶贫的目标 首先,确定目标对象,把低收入的贫困人口作为服务对象。这要有一套有效的识别目标群体的作法。对农民的土地、收入和家庭成员的职业状况进行分析做出基本判断,区分贫困人口。其次,提供无抵押无担保的信用贷款,设计符合贫困者需要的信贷产品,建立完善的贷款和还款机制。小额信贷应根据贫困户的经济和社会特点,合理设计一套有利于改善对贫困户的信贷服务,使得贫困户随时可以根据自己的情况选择金融产品。 3.具备可持续发展能力 首先,实施真正意义上的商业化经营。在利率方面,政府应放松对利率的管制,允许小额信贷机构按照合理的市场利率开展经营活动。制定激励贷款人按时还款又能使信贷机构实现自负盈亏的利率政策。在资金来源方面,除了接受捐助外,还应获得优惠贷款,当地商业银行可以直接向小额信贷组织提供贷款。另外,还可借鉴国外经验,创立一个总部机构或批发式资金形式。其次,完善管理体系,提高自身运营能力。建立有效的运作机构,完善各种规章制度和财务管理体系,提高人员素质,有效运作资金,保证信贷活动正常进行。 总的来说,在我国,不管是非政府形式的小额信贷机构还是试点的小额贷款公司,都有着各自的优点和缺点,我们应该根据其各自的具体情况提出具体的发展战略,覆盖面和可持续发展是互相促进的两个方面,是可以兼容的,非政府形式的小额信贷组织可以在发挥其覆盖面优势的同时,多解决可持续发展的问题,而试点的小额贷款公司可以在保持其商业运作的基础上,多注意其社会责任感的体现,两种组织形式不一定要按照某种固定的模式发展,可以在侧重某方面的同时,适时兼顾另一方面,发挥出组织自身的特色。只有实现覆盖面和可持续性这两方面的目标,小额信贷机构才会实现其真正的使命,取得其更广阔的发展天地。我国正在探索小额贷款的发展之路,但是在探索的过程中,要防止小额信贷产生变异。我国小额信贷机构的组建形式也不能完全照搬国外模式,而应根据我国金融体制环境因地制宜,探索一条真正适合我国国情的小额信贷发展之路。 建党对象思想汇报总结 个人工作总结 从去年六月至今已经将近一年的时间,做为一名建党对象,一名普通职工,应该从各方面对一年的思想学习、工作、生活进行全面的总结,按照公司要求,现就几个方面汇报总结如下: 一、思想学习 俗话说:“活到老,学到老”,一年来,自己能够积极参加局、公司组织的各类政治学习和活动,认真学习江总书记提出的三个代表,努力地提高自己,勇于解剖自己,分析自己,正视自己,提高自身素质。以便使自己更快地适应社会发展的形势。在学习政治思想理论的同时,注重将理论与公司目前的工作相结合,时刻不忘我党的宗旨,时刻不忘我党的“三个代表”,自觉地发挥一个建党对象所应该发挥的作用. 二、遵纪守法好范文版权所有 本人严格遵守各项规章制度,不迟到、不早退、有事主动请假。在工作中,尊敬领导、团结同事,能正确处理好与领导同事之间的关系。平时,勤俭节约、任劳任怨、对人真诚、人际关系和谐融洽,从不闹无原则的纠纷,毫不松懈地培养自己的综合素质和能力。除此之外,对工作上联系较多的《建筑法》、《招投标法》等有关专业法律、法规坚持自学。 自己目前所从事的是建筑工程预决算工作,在工作中,自己的作风是实事求是,决不弄虚作假,严格按程序、按政策、制度办事,决不高估冒算,拉关系、讲面子。 三、本职工作 去年以来,我面临着人员转岗、××与××分家的形势。虽然在思想上有很大的波动,但是依然坚守工作岗位,与几名男同志一样,奋斗在工作的第一线。我们顶着烈日,冒着酷暑,较圆满地完成了××前期的“三通一平”工程,用自己辛勤的汗水为公司创了收。两个月下来,同事们都说我晒成了黑天鹅。 去年10月份,我被抽调实施贯标工作,并全程陪同广州质量体系认证有限公司的两位复审认证老师对公iso9001:2000质量管理体系的运行情况进行全面检查,经过3天的审核,顺利地通过复查。 对于公司的重大改革,自己能够积极参加,而且能及时调整心态,以最好的精神面貌投入到新的工作中来,不打折扣的完成领导交办的各方面工作。 四、存在的缺点和不足 我认识到自己还有很多不足,业务水平和表达能力等都有待提高,还有很多需要向身边的同志学习请教,在日常工作中应该时刻注意向其他同志学习,尤其是向优秀党员学习。虚心接受同志们的批评,注意在实践中改正自己的缺点,多注意主动帮助其他同志干一些力所能及的事,自己也在做的过程中得到锻炼,增长知识,提高工作的能力。 我相信在以后的工作学习中,我会在党组织的关怀下,在同事们的帮助下,通过自己的努力,克服缺点,取得更大的进步。我将努力工作,扬长避短,请组织考验我。第二篇:新东方营销方式及招生对象
第三篇:服务对象评价总结
第四篇:探索小额贷款业务的服务对象和方式
第五篇:建党对象思想汇报总结