#include <stdio.h>
#include <string.h>
void test_3(void)
{
char *aaa="this is a gril strchr test";
char *ccc="a";
char *bbb=NULL;
//参数1是需要查找的字符串,参数2需要查找的字符
//返回值:找到参数2的位置地址
bbb=strchr(aaa,'h');
printf("正向找到字符h在字符串的地址:%s\n",bbb);
bbb=strrchr(aaa,'i');
printf("反向查找字符i在字符串的地址:%s\n",bbb);
//参数1是需要查找的字符串,参数2是查找字符串中指定的任意字符
//返回值:根据参数2字符串中的任意字符,在参数1中找到其第一次出现的位置
bbb=strpbrk(aaa,ccc);
printf("字符串的地址:%s\n",bbb);
bbb=strstr(aaa,ccc);
printf("在aaa查找到ccc首次的地址:%s\n",bbb);
int ret=0;
//参数1是需要查找的字符串,参数2是查找字符串中指定的任意字符
//返回值:根据参数2字符串中的任意字符,在参数1中统计不包含参数2任意字符的数量
ret=strcspn(aaa,ccc);
printf("的地址:%d\n",ret);
//参数1是需要查找的字符串,参数2是查找字符串中指定的任意字符
//返回值:根据参数2字符串中的任意字符,在参数1中统计不包含参数2任意字符的下标
ret = strspn(aaa,bbb);
printf("aaa中不包含ccc中任意字符的下标:%d",ret);
}
void test_2(void)
{
char aa[]="happy net year!";
char bb[]="happy new year!";
int ret=0;
//1.字符串相等结果为0
//2.aa<bb 字符串aa第一次出现小于bb时,判定aa<bb
//3.aa>bb 字符串aa第一次出现小于bb时,判定aa>bb
ret = strcmp(aa,bb);
printf("aa与bb的比较结果:%d\n",ret);
ret=strncmp(aa,bb,10);
printf("aa与bb的比较前十个结果:%d\n",ret);
}
void test_1(void) //拼接
{
char arr[100]="strcat test!"; //定义arr字符串并初始化
char ar[]="strcat_1 to strcat"; //定义ar字符串并初始化
puts(arr);
puts(ar);
//参数一目的,参数2是来源
//功能:将ar的内容追加到ar中
strcat(arr,ar);
printf("arr追加ar之后的内容:%s\n",arr);
//二次追加,意思是在第一次的追加基础上,进行追加
//需要关注目的的空间大小
strncat(arr,ar,8);
printf("arr追加ar之后的内容:%s\n",arr);
}
void test(void)
{
char str[100]="copy string test!"; //开辟了100个字节空间,实际使用了17字符加一个'\0'=18个字符空间
char str_1[100]; //开辟了100个字符空间
char str_2[10];
char *p=NULL;
//参数str_1是目的,str是来源。
p=strcpy(str_1,str);
puts(str); //输出字符串
puts(str_1);
printf("log:%c\n",str_1[16]);//往str_1后追加内容
int i;
for(i=0;i<4;i++)
{
str_1[i+17]='a'+i;//第17个元素本来的'\0',改为字符'a',循环增加4个字符
}
str_1[i+17]='\0';//末尾加上'\0'
puts(str_1);
puts(p);
strncpy(str_2,str,9);
//printf("log:%c",str_2[8]);
puts(str_2);
}
int main()
{
//test();
//test_1();
//test_2();
test_3();
return 0;
}