char*p
与
char ch[]
的区别:
//不可用指针改变字符串中的成员,因为字符串是常量
char*p="abcd";
p=(char*)"qwer";
//p[1]='t';//不可以改变
//可以改变字符串中的成员,因为此时的字符串是从常数区复制到栈区,但是不可以用数组名进行赋值,因为
数组名是地址常量
char ch[5]={"abcd"};
ch[0]='h';
//ch="grgr";//不可以修改
字符串一些库函数的功能:
char *strcpy( char *to, const char *from );
//功能:复制字符串from 中的字符到字符串to,包括空值结束符。返回值为指针to。
char *strcat( char *str1, const char *str2 );
//功能:函数将字符串str2 连接到str1的末端,并返回指针str1.
int strcmp( const char *str1, const char *str2 );
//小于0:前小于后
//大于0:前大于后
//等于0,前等于后
char *strstr( const char *str1, const char *str2 );
//功能:函数返回一个指针,它指向字符串str2 首次出现于字符串str1中的位置,如果没有找到,返回
NULL。
string
类型的字符串
string s="afsdgfdgdfthgy"
//字符串截取
cout<<s.substr(2,4)<<endl;//(初始位置,长度)
//将string转换成char*
cout<<s.c_str()<<endl;
printf("%s",s.c_str());
//删除字符串
s1.erase(0,2);//从pos开始的len字符
各种类型的增强的范围
for
int arr[5]={1,2,3,4,5};
for(int v:arr)
{
cout<<v<<endl;
}