发布网友 发布时间:2022-04-20 10:28
共4个回答
热心网友 时间:2022-04-12 21:43
1、字符串长度函数strlen(参数)
解释:求出字符串中有效字符的个数,参数可以是指针、字符串、数组
例如:char aa[]="abc";
char *p=aa;
strlen(aa)=strlen(p)=strlen("abc")
2、字符串比较函数strcmp()和strncmp()
解释:将两个字符串逐个进行比较,当遇到两个字符不同时便停止比较,用前面字符串中的字符与后面字符串中对应的字符进行相减,得到一个大于或小于0的字符,若返回值
为0,则字符串相等。strncmp()只比交前n个字符
格式:strcmp(char *p1,char *p2) strncmp(char *p1,char
*p2,n)
p1 p2可以是指针 也可以是字符数组
3、检索字符串函数index()或rindex
解释:该函数的功能是检索在指定的字符串中第一次出现指定字符的位置,该函数返回一个指针,该指针给出指定字符在字符串中的位置,若该字符串中没有该字符则返回NULL 格式:char*index(char *p,char
c) char *rindex(char *p,char c) index 从作向右
rindex 从右向左
4、字符串连接函数strcat()和 strncat()
解释:连接两个字符串,将第二个字符串连接到第一个字符串的后面,组成一个新的字符串,并返回一个指针,该指针指向新字符串的首元素
格式:char *strcat(char s1[],char s2[]), char *strncat(char
s1[],char s2[],n)
该函数的参数可以是指针 也可以是数组
5、字符串复制函数strcpy()和strncpy()
解释:将后面的字符串复制到前面的字符串中,后面字符串保持不变,前面的字符串被覆盖掉,并返回一个指针
格式:char * strcpy(char s1[],char s2[])
char*strncpy(char s1[],char s2[],n);
参数可以是字符数组或者指针
热心网友 时间:2022-04-12 23:01
(1)字符串长度函数:
int strlen( char *p )
{
int i=0;
while( p[i]!='\0' ){
i++;
}
return i;
}
(2)字符串复制函数:
//将p2所指的内容全部赋给p1
void strcpy( char *p1 , char *p2 )
{
int i=0;
while( p2[i]!='\0'){
p1[i]=p2[i];
i++;
}
p1[i]='\0';
}
(3)字符串比较函数:
int strcmp( char *p1 , char *p2 )
{
int i=0;
while( p1[i]!='\0' && p2[i]!='\0'){
if( p1[i]-p2[i] )
return p1[i]-p2[i];
i++;
}
return strlen(p1)-strlen(p2);
}
(4)最后,提供一个主函数供你测试一下,并附测试用例及预期输出结果 :]
int main()
{
char *p1 , *p2;
p1=new char[1000];
p2=new char[1000];
while( cin>>p1>>p2 ){
cout<<strlen(p1)<<endl;
cout<<strlen(p2)<<endl;
cout<<strcmp(p1,p2)<<endl;
strcpy(p1,p2);
cout<<"after copying p1 becomes "
<<p1<<endl;
}
return 0;
}
/*
helloWorld
myGirl
10
6
-5
after copying p1 becomes myGirl
abcdef
bcdefg
6
6
-1
after copying p1 becomes bcdefg
abcdefg
abcdefg
7
7
0
after copying p1 becomes abcdefg
abcdefg
abcdefghijkg
7
12
-5
after copying p1 becomes abcdefghijkg
abcdf
abcdd
5
5
2
after copying p1 becomes abcdd
abcdefghij
abcdefg
10
7
3
after copying p1 becomes abcdefg
*/
热心网友 时间:2022-04-13 00:36
s代表的是你输入的字符串,N1代表的是从第几个字符开始取,n2是取多少个字符,例如:substr(myname,2,2),结果就是yn
热心网友 时间:2022-04-13 02:27
template<class T>
int strlen(T *source)
{
T *len=source;
while(*len++);
return len-source-1;
}
template<class T>
T *strcpy(T *dest,const T *source)
{
if(source==NULL||dest==NULL)
return NULL;
if(source==dest)
return dest;
while(*dest++=*source++);
return dest;
}
template<class T>
bool strcmp( const T *Cmp1 , const T *Cmp2 )
{
while( *Cmp1++ == *Cmp2++ )
if( *Cmp1 == '\0' && *Cmp2 == '\0' )//两个数组的元素如果直到最后一个元素都相等的话返回true
return true;
return false;//存在不相等的元素返回false
}
template<class T>
T *strcat( T *Dest, const T *Source)
{
if(Dest==NULL||Source==NULL)
return NULL;
if(Dest==Source)
return NULL;
T *temp=Dest;
while(*temp++);
while(*temp++=*Source++);
return Dest;
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luciferdragon/archive/2010/10/16/5945802.aspx
参考资料:http://hi.baidu.com/lucifer_dragon/blog/item/def97cec87a2bcdbb21cb14b.html