PS:本文包含了大部分strings函数的说明,并附带举例说明。本来想自己整理一下的,发现已经有前辈整理过了,就转了过来。修改了原文一些源码的问题,主要是用char *字义字符串的问题,导致程序运行时崩溃。另外自己重写了部分测试程序,使其更能满足自己测试的需要。不当之处,还请海涵。
@函数原型: char *strdup(const char *s)
函数功能: 字符串拷贝,目的空间由该函数分配
函数返回: 指向拷贝后的字符串指针
参数说明: src-待拷贝的源字符串
所属文件:
-
#include
-
#include
-
#include
-
int main()
-
{
-
char *dup_str, *string="abcde";
-
dup_str=strdup(string);
-
printf("%s", dup_str);
-
free(dup_str);
-
return 0;
-
}
@函数名称: strcpy
函数原型: char* strcpy(char* str1,char* str2);
函数功能: 把str2指向的字符串拷贝到str1中去
函数返回: 返回str1,即指向str1的指针
参数说明:
所属文件:
-
#include
-
#include
-
int main()
-
{
-
char string[10];
-
char *str1="abcdefghi";
-
strcpy(string,str1);
-
printf("the string is:%s\n",string);
-
return 0;
-
}
@函数名称: strncpy
函数原型: char *strncpy(char *dest, const char *src,intcount)
函数功能: 将字符串src中的count个字符拷贝到字符串dest中去
函数返回: 指向dest的指针
参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数
所属文件:
-
#include
-
#include
-
int main()
-
{
-
char*src = "bbbbbbbbbbbbbbbbbbbb";
-
char dest[50] ="aaaaaaaaaaaaaaaaaaaa";
-
-
puts(dest);
-
strncpy(dest, src, 10);
-
-
puts(dest);
-
return0;
-
}
输出:
注意:strncpy只复制指定长度的字符,不会自动在末尾加'\0'。若指定长度超过源字符串长度,不够的部分补‘\0’,
@函数名称: strcat
函数原型: char* strcat(char * str1,char * str2);
函数功能: 把字符串str2接到str1后面,str1最后的'\0'被取消
函数返回: str1
参数说明:
所属文件:
-
#include
-
#include
-
int main()
-
{
-
char buffer[80];
-
strcpy(buffer,"Hello ");
-
strcat(buffer,"world");
-
printf("%s\n",buffer);
-
return 0;
-
}
@函数名称: strncat
函数原型: char *strncat(char *dest, const char *src, size_t maxlen)
函数功能: 将字符串src中前maxlen个字符连接到dest中
函数返回:
参数说明:
所属文件:
-
#include
-
#include
-
char buffer[80];
-
int main()
-
{
-
strcpy(buffer,"Hello ");
-
strncat(buffer,"world",8);
-
printf("%s\n",buffer);
-
strncat(buffer,"*************",4);
-
printf("%s\n",buffer);
-
return 0;
-
}
注意:与strncpy不同的是,strncat会自动在末尾加‘\0’,若指定长度超过源字符串长度,则只复制源字符串长度即停止
@函数名称: strcmp
函数原型: int strcmp(char * str1,char * str2);
函数功能: 比较两个字符串str1,str2.
函数返回: str1str2,返回正数.
参数说明:
所属文件:
-
#include
-
#include
-
int main()
-
{
-
char *buf1="aaa", *buf2="bbb",*buf3="ccc";
-
int ptr;
-
ptr=strcmp(buf2, buf1);
-
if(ptr>0)
-
printf("buffer 2 is greater thanbuffer 1\n");
-
else
-
printf("buffer 2 is less thanbuffer 1\n");
-
ptr=strcmp(buf2, buf3);
-
if(ptr>0)
-
printf("buffer 2 is greater thanbuffer 3\n");
-
else
阅读(260) | 评论(0) | 转发(0) |