C++字符串常用处理函数(转载整理)
char *strcpy(char *s1, const char *s2) 将字符串s2复制到字符串数组s1中,返回s1的值********************************************************************************************************************************
函数说明
返回值
附加说明
范例
main()
{
char a[30]="string(1)";
char b[]="string(2)";
printf("before strcpy() :%s\n",a);
printf("after strcpy() :%s\n",strcpy(a,b));
}
执行
after strcpy() :string(2)
********************************************************************************************************************************
char *strncpy(char *s1, const char *s2, size_t n) 将字符串s2中最多n个字符复制到字符串数组s1中,返回s1的值
********************************************************************************************************************************
函数说明
返回值
范例
main()
{
char a[30]="string(1)";
char b[]="string(2)";
printf("before strncpy() : %s\n",a);
printf("after strncpy() : %s\n",strncpy(a,b,6));
}
执行
after strncpy() : string(1)
********************************************************************************************************************************
char *strcat(char *s1, const char *s2) 连接两字符串
********************************************************************************************************************************
函数说明
返回值
范例
main()
{
char a[30]="string(1)";
char b[]="string(2)";
printf("before strcat() : %s\n",a);
printf("after strcat() : %s\n",strcat(a,b));
}
执行
after strcat () : string(1)string(2)
********************************************************************************************************************************
char *strncat(char *s1, const char *s2, size_t n) 将字符串s2中最多n个字符添加到字符串s1的后面
********************************************************************************************************************************
将字符串s2中最多n个字符添加到字符串s1的后面。s2的第一个字符重定义s1的null终止符。返回s1的值
返回值
范例
main()
{
char a[30]="string(1)";
char b[]="string(2)";
printf("before strnact() :%s\n", a);
printf("after strncat() :%s\n", strncat(a,b,6));
}
执行
after strncat() : string(1) string
int strcmp(const char *s1, const char *s2) 比较字符串s1和字符串s2 ********************************************************************************************************************************
函数说明
范例
main()
{
char *a="aBcDeF";
char *b="AbCdEf";
char *c="aacdef";
char *d="aBcDeF";
printf("strcmp(a,b) : %d\n",strcmp(a,b));
printf("strcmp(a,c) : %d\n",strcmp(a,c));
printf("strcmp(a,d) : %d\n",strcmp(a,d));
}
执行
strcmp(a,c) :-31
strcmp(a,d) : 0
********************************************************************************************************************************
int strncmp(const char *s1, const char *s2, size_t n) 比较字符串s1中的n个字符和字符串s2。函数在s1等于、小于或大于s2时分别返回0、小于0或大于0的值
********************************************************************************************************************************
char * strtok(char *s1,const char *s2) strtok()用来将字符串分割成一个个片段。 ********************************************************************************************************************************
用一系列strtok调用将s1字符串标记化(将字符串分成各个逻辑组件,如同一行文本中的每个单词),用字符串s2所包含的字符分隔。 首次调用时包含s1为第一个参数,后面调用时继续标记化同一字符串,包含NULL为第一个参数。每次调用时返回当前标记指针。如果函数调用时不再有更多标记,则返回NULL
返回值
范例
main()
{
char s[]="ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
char *delim="-: ";
char *p;
printf("%s ";strtok(s,delim));
while((p=strtok(NULL,delim)))printf("%s ",p);
printf("\n");
}
执行
char *strpbrk(const char *s,const char *accept); 查找字符串中第一个出现的指定字符
********************************************************************************************************************************
返回值
范例
main()
{
char *s="012345678901234567890123
char *p;
p=strpbrk(s,"a1 839");
printf("%s\n",p);
p=strprk(s,"4398");
printf("%s\n",p);
执行
char * strrchr(const char *s, int c); 查找字符串中最后出现的指定字符 ********************************************************************************************************************************
返回值
范例
main()
{
char *s="012345678901234567890123
char *p;
p=strrchr(s,'5');
printf("%s\n",p);
}
执行
char *strstr(const char *haystack,const char *needle); 在一字符串中查找指定的字符串 ********************************************************************************************************************************
返回值
范例
main()
{
char * s="012345678901234567890123
char *p;
p= strstr(s,"901");
printf("%s\n",p);
}
执行
int strncasecmp(const char *s1,const char *s2,size_t n); 忽略大小写比较字符串 ********************************************************************************************************************************
函数说明
返回值
范例
main()
{
char *a="aBcDeF";
char *b="AbCdEf";
if(!strncasecmp(a,b))
printf("%s =%s\n",a,b);
}
执行
size_t strlen (const char *s); 返回字符串长度 ********************************************************************************************************************************
函数说明
返回值
范例
#include<string.h>
main()
{
char *str = "12345678";
printf("str length = %d\n", strlen(str));
}
执行
size_t strcspn ( const char *s,const char * reject); 返回字符串中连续不含指定字符串内容的字符数 ********************************************************************************************************************************
函数说明
返回值
范例
main()
{
char *str="Linux was first developed for 386/486-based pcs.";
printf("%d\n",strcspn(str," "));
printf("%d\n",strcspn(str,"/-"));
printf("%d\n",strcspn(str,"1234567890"));
}
执行
33
30
char * strchr (const char *s,int c); 查找字符串中第一个出现的指定字符 ********************************************************************************************************************************
函数说明
返回值
范例
main()
{
char *s=012345678901234567890123
char *p;
p=strchr(s,'5');
printf("%s\n",p);
}
执行
char * rindex( const char *s,int c); 查找字符串中最后一个出现的指定字符
********************************************************************************************************************************
函数说明
返回值
范例
mian()
{
char *s ="012345678901234567890123
char *p;
p=rindex(s,'5');
printf("%s\n",p);
}
执行
void * memset (void *s ,int c, size_t n); 将一段内存空间填入某值 ********************************************************************************************************************************
函数说明
返回值
附加说明
范例
main()
{
char s[30];
memset (s,'A',sizeof(s));
s[30]='\0';
printf("%s\n",s);
}
执行
void * memmove(void *dest,const void *src,size_t n); 拷贝内存内容
********************************************************************************************************************************
函数说明
返回值
附加说明
范例
void * memcpy (void * dest ,const void *src, size_t n); 拷贝内存内容
********************************************************************************************************************************
函数说明
返回值
附加说明
范例
main()
{
char a[30]="string (a)";
char b[30]="string\0string";
int i;
strcpy(a,b);
printf("strcpy():");
for(i=0;i<30;i++)
printf("%c",a[i]);
memcpy(a,b,30);
printf("\nmemcpy() :");
for(i=0;i<30;i++)
printf("%c",a[i]);
}
执行
memcpy() : string string
void * memcpy (void * dest ,const void *src, size_t n); 比较内存内容 ********************************************************************************************************************************
函数说明
返回值
范例
main()
{
char *a ="aBcDeF";
char *b="AbCdEf";
char *c="aacdef";
char *d="aBcDeF";
printf("memcmp(a,b):%d\n",memcmp((void*)a,(void*) b,6));
printf("memcmp(a,c):%d\n",memcmp((void*)a,(void*) c,6));
printf("memcmp(a,d):%d\n",memcmp((void*)a,(void*) d,6));
执行
memcmp(a,c):-1
memcmp(a,d):0
int bcmp ( const void *s1,const void * s2,int n); 比较内存内容 ********************************************************************************************************************************
函数说明
返回值
附加说明
范例
void * memchr(const void *s,int c,size_t n); 某一内存范围中查找一特定字符
********************************************************************************************************************************
函数说明
返回值
范例
main()
{
char *s="012345678901234567890123
char *p;
p=memchr(s,'5',10);
printf("%s\n",p);
}
执行
void * memccpy(void *dest, const void * src, int c,size_t n); 考贝内存内容
函数说明
返回值
范例
main()
{
char a[]="string[a]";
char b[]="string(b)";
memccpy(a,b,'B',sizeof(b));
printf("memccpy():%s\n",a);
}
执行
void bcopy ( const void *src,void *dest ,int n); 考贝内存内容
函数说明
返回值 附加说明
范例
main()
{
char dest[30]=”string(a)”;
char src[30]=”string\0string”;
int i;
bcopy(src,dest,30);
printf(bcopy(): “)
for(i=0;i<30;i++)
printf(“%c”,dest[i]);
memcpy(dest src,30);
printf(‘\nmemcpy() : “);
for(i=0;i<30;i++)
printf(“%c”,dest[i]);
执行
memcpy() :string sring
char * index( const char *s, int c); 查找字符串中第一个出现的指定字符
返回值
范例
main()
{
char *s =”012345678901234567890123
char *p;
p =index(s,’5’);
printf(%s\n”,p);
}
执行
void bzero(void *s,int n); 将一段内存内容全清为零
函数说明
返回值 附加说明
范例