#include
#include
#include
int main()
{
char *str1="hello world!";
char *str2="HELLO WORLD!";
int len=strlen(str1);//求的字符串长度,不包括'\0'在内
printf("len=%d\n",len);
int cmp=strcmp(str1,str2);
printf("cmp=%d\n",cmp);
//str1>str2,返回大于零的值,str1
//int strcmp(char *str1,char * str2,int n),只是可以控制个数,别的和strcmp()一样
char str3[100]="hello world!";
char str4[100]="HELLO WORLD!";
strcat(str3,str4);
printf("str3=%s\n",str3);
//函数将字符串str4 连接到str3的末端,即抹掉str3结尾的'\0',但是str4结尾的'\0'保留并返回指针str3。
//str4应该为const。str3的空间要足以容纳str3和str4,不然会发生溢出错误,此函数不安全
char str5[100]="hello world!";
char str6[100]="HELLO WORLD!";
strncat(str5,str6,5);
printf("str3=%s\n",str5);
//这个函数和strcat()一样,只是相对更安全,可以显式的控制链接字符个数。
//会抹掉str5的'\0',完了会自动添加'\0'
char str7[100]="hello world!";
char str8[100]="HELLO WORLD!";
strcpy(str7,str8);
printf("str7=%s\n",str7);
//复制str8的内容到str7中,包括'\0',返回str7的指针,即全部抹掉str7的内容,换成str的
//前提是str7的空间要足够大可以容纳str8的内容以及'\0',所以此函数是相对不安全的
char str9[100]="hello world!";
char str10[100]="HELLO WORLDDDD!";
strncpy(str9,str10,14);
len=strlen(str9);
printf("str9=%s\n",str9);
printf("str9 len=%d\n",len);
//老师的文档如上所述,但是自己测试几次都没有出错,并且用strlen()统计也是正确的
//使用此函数前提也是目标字符串的空间要足够,也只是相对的安全
int a=192,b=168,c=100,d=111;
char str11[18];
sprintf(str11,"%d.%d.%d.%d",a,b,c,d);
len=strlen(str11);
printf("str11=%s\n",str11);
printf("str11 len=%d\n",len);
//函数功能:把格式化的数据写入某个字符串缓冲区。前提是缓冲区要存的下
char str12[100]=" 123abc";
int data=atoi(str12);
printf("str12 to data=%d\n",data);
data=123;
char str13[100];
itoa(data,str13,10);
printf("base=10,str13=%s\n",str13);
itoa(data,str13,2);
printf("base=2,str13=%s\n",str13);
char str15[100]="hello world!";
char *p=strchr(str15,'l');
printf("l in str15 first=%s\n",p);
//函数功能:返回字符串 str 中首次出现字符 c 的位置指针,返不到返回 NULL。
char str16[100]="ll";
p=strstr(str15,str16);
printf("str16 in str15 first=%s\n",p);
//函数功能:strstr() 函数搜索字符串 str2 在字符串 str1 中是否出现。找到所搜索的字符
//串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL
char str17[100]="[email protected]@[email protected]";
char *str18=strtok(str17,"@");
printf("str18=%s\n",str18);
int i=0;
for(i=0;i<3;i++){
str18=strtok(NULL,"@");
printf("str18=%s\n",str18);
}
char str19[20]={0};
//memset(str19,'y',sizeof(str19));
memset(str19,'y',5);
printf("memset str19=%s\n",str19);
//功能: 函数拷贝ch 到buffer 从头开始的count 个字符里, 并返回buffer指针。
//memset() 可以应用在将一段内存初始化为某个值。
//例如:memset( the_array, '\0', sizeof(the_array) );
//这是将一个数组的所以分量设置成零的很便捷的方法。
char str20[100]="hello world!";
char str21[100]="HELLO WORLD!";
memcpy(str20,str21,5);
printf("memcpy str21 to str20=%s\n",str20);
//定义:void *memcpy( void *to, const void *from, size_t count );
//功能:函数从from中复制count 个字符到to中,并返回to指针。如果to 和 from 重叠,函数行为不确定。
//应用于字符串作用类似于strncpy()
char str22[100]="hello world!";
char str23[100]="HELLO WORLD!";
memmove(str22,str23,5);
printf("memmove str23 to str22=%s\n",str22);
//功能: 与mencpy相同,不同的是当to 和 from 重叠,函数正常仍能工作。
return 0;
}